IB/iser: Use iser_fr_desc as registration context
authorMax Gurtovoy <mgurtovoy@nvidia.com>
Tue, 8 Mar 2022 14:55:44 +0000 (16:55 +0200)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 18 Mar 2022 17:37:49 +0000 (14:37 -0300)
After removing the FMR support in iSER, there is only one type of
registration context. Replace the void pointer with the explicit structure
for registration (struct iser_fr_desc).

Link: https://lore.kernel.org/r/20220308145546.8372-3-mgurtovoy@nvidia.com
Reviewed-by: Sergey Gorenko <sergeygo@nvidia.com>
Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Acked-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/ulp/iser/iscsi_iser.h
drivers/infiniband/ulp/iser/iser_initiator.c
drivers/infiniband/ulp/iser/iser_memory.c
drivers/infiniband/ulp/iser/iser_verbs.c

index 20af46c..23b9222 100644 (file)
@@ -203,12 +203,12 @@ struct iser_reg_resources;
  *
  * @sge:          memory region sg element
  * @rkey:         memory region remote key
- * @mem_h:        pointer to registration context (FMR/Fastreg)
+ * @desc:         pointer to fast registration context
  */
 struct iser_mem_reg {
-       struct ib_sge    sge;
-       u32              rkey;
-       void            *mem_h;
+       struct ib_sge sge;
+       u32 rkey;
+       struct iser_fr_desc *desc;
 };
 
 enum iser_desc_type {
index 2490150..012decf 100644 (file)
@@ -619,13 +619,13 @@ static int iser_check_remote_inv(struct iser_conn *iser_conn, struct ib_wc *wc,
                        struct iser_fr_desc *desc;
 
                        if (iser_task->dir[ISER_DIR_IN]) {
-                               desc = iser_task->rdma_reg[ISER_DIR_IN].mem_h;
+                               desc = iser_task->rdma_reg[ISER_DIR_IN].desc;
                                if (unlikely(iser_inv_desc(desc, rkey)))
                                        return -EINVAL;
                        }
 
                        if (iser_task->dir[ISER_DIR_OUT]) {
-                               desc = iser_task->rdma_reg[ISER_DIR_OUT].mem_h;
+                               desc = iser_task->rdma_reg[ISER_DIR_OUT].desc;
                                if (unlikely(iser_inv_desc(desc, rkey)))
                                        return -EINVAL;
                        }
index 1317e18..7ec63f4 100644 (file)
@@ -129,7 +129,7 @@ void iser_unreg_mem_fastreg(struct iscsi_iser_task *iser_task,
        struct iser_fr_desc *desc;
        struct ib_mr_status mr_status;
 
-       desc = reg->mem_h;
+       desc = reg->desc;
        if (!desc)
                return;
 
@@ -146,8 +146,8 @@ void iser_unreg_mem_fastreg(struct iscsi_iser_task *iser_task,
                ib_check_mr_status(desc->rsc.sig_mr, IB_MR_CHECK_SIG_STATUS,
                                   &mr_status);
        }
-       iser_reg_desc_put_fr(&iser_task->iser_conn->ib_conn, reg->mem_h);
-       reg->mem_h = NULL;
+       iser_reg_desc_put_fr(&iser_task->iser_conn->ib_conn, reg->desc);
+       reg->desc = NULL;
 }
 
 static void iser_set_dif_domain(struct scsi_cmnd *sc,
@@ -357,7 +357,7 @@ int iser_reg_mem_fastreg(struct iscsi_iser_task *task,
                desc->sig_protected = true;
        }
 
-       reg->mem_h = desc;
+       reg->desc = desc;
 
        return 0;
 
index 8893bc2..5dbad68 100644 (file)
@@ -904,7 +904,7 @@ u8 iser_check_task_pi_status(struct iscsi_iser_task *iser_task,
                             enum iser_data_dir cmd_dir, sector_t *sector)
 {
        struct iser_mem_reg *reg = &iser_task->rdma_reg[cmd_dir];
-       struct iser_fr_desc *desc = reg->mem_h;
+       struct iser_fr_desc *desc = reg->desc;
        unsigned long sector_size = iser_task->sc->device->sector_size;
        struct ib_mr_status mr_status;
        int ret;