Subject: Re: [Patch v4 0/3] Register with RDMA SOC interface and support for CQ

From: Leon Romanovsky <[email-masked]>
Date: Wed, 20 Dec 2023 10:27:58 +0200

On Fri, Dec 15, 2023 at 06:04:12PM -0800, [email-masked] wrote:
> From: Long Li <[email-masked]>
> 
> This patchset add support for registering a RDMA device with SoC for
> support of querying device capabilities, upcoming RC queue pairs and
> CQ interrupts.
> 
> This patchset is partially based on Ajay Sharma's work:
> https://lore.kernel.org/netdev/[email-masked]
> 
> Changes in v2:
> Dropped the patches to create EQs for RC QP. They will be implemented with
> RC patches.
> 
> 
> Long Li (3):
>   RDMA/mana_ib: register RDMA device with GDMA
>   RDMA/mana_ib: query device capabilities
>   RDMA/mana_ib: Add CQ interrupt support for RAW QP
> 
>  drivers/infiniband/hw/mana/cq.c               | 34 ++++++-
>  drivers/infiniband/hw/mana/device.c           | 31 +++++--
>  drivers/infiniband/hw/mana/main.c             | 69 ++++++++++----
>  drivers/infiniband/hw/mana/mana_ib.h          | 53 +++++++++++
>  drivers/infiniband/hw/mana/qp.c               | 90 ++++++++++++++++---
>  .../net/ethernet/microsoft/mana/gdma_main.c   |  5 ++
>  include/net/mana/gdma.h                       |  5 ++
>  7 files changed, 252 insertions(+), 35 deletions(-)

Applied with the following change in third patch.

diff --git a/drivers/infiniband/hw/mana/qp.c b/drivers/infiniband/hw/mana/qp.c
index 19998082a376..21ac9fcadf3f 100644
--- a/drivers/infiniband/hw/mana/qp.c
+++ b/drivers/infiniband/hw/mana/qp.c
@@ -443,17 +443,16 @@ static int mana_ib_create_qp_raw(struct ib_qp *ibqp, struct ib_pd *ibpd,
                ibdev_dbg(&mdev->ib_dev,
                          "Failed copy udata for create qp-raw, %d\n",
                          err);
-               goto err_destroy_wq_obj;
+               goto err_release_gdma_cq;
        }

        return 0;

-err_destroy_wq_obj:
-       if (gdma_cq) {
-               kfree(gdma_cq);
-               gd->gdma_context->cq_table[send_cq->id] = NULL;
-       }
+err_release_gdma_cq:
+       kfree(gdma_cq);
+       gd->gdma_context->cq_table[send_cq->id] = NULL;

+err_destroy_wq_obj:
        mana_destroy_wq_obj(mpc, GDMA_SQ, qp->tx_object);

 err_destroy_dma_region:

> -- 
> 2.25.1