IB/iser: Modify struct iser_mem_reg members
authorSagi Grimberg <sagig@mellanox.com>
Tue, 14 Apr 2015 15:08:24 +0000 (18:08 +0300)
committerDoug Ledford <dledford@redhat.com>
Wed, 15 Apr 2015 20:07:13 +0000 (16:07 -0400)
No need to keep lkey, va, len variables, we can keep
them as struct ib_sge. This will help when we change the
memory registration logic.

This patch does not change any functionality.

Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Adir Lev <adirl@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/ulp/iser/iscsi_iser.h
drivers/infiniband/ulp/iser/iser_initiator.c
drivers/infiniband/ulp/iser/iser_memory.c

index 185d2ec..5fd0963 100644 (file)
@@ -247,18 +247,14 @@ struct iscsi_endpoint;
 /**
  * struct iser_mem_reg - iSER memory registration info
  *
- * @lkey:         MR local key
- * @rkey:         MR remote key
- * @va:           MR start address (buffer va)
- * @len:          MR length
+ * @sge:          memory region sg element
+ * @rkey:         memory region remote key
  * @mem_h:        pointer to registration context (FMR/Fastreg)
  */
 struct iser_mem_reg {
-       u32  lkey;
-       u32  rkey;
-       u64  va;
-       u64  len;
-       void *mem_h;
+       struct ib_sge    sge;
+       u32              rkey;
+       void            *mem_h;
 };
 
 enum iser_desc_type {
index 420a613..b2e3b77 100644 (file)
@@ -82,11 +82,11 @@ static int iser_prepare_read_cmd(struct iscsi_task *task)
 
        hdr->flags    |= ISER_RSV;
        hdr->read_stag = cpu_to_be32(mem_reg->rkey);
-       hdr->read_va   = cpu_to_be64(mem_reg->va);
+       hdr->read_va   = cpu_to_be64(mem_reg->sge.addr);
 
        iser_dbg("Cmd itt:%d READ tags RKEY:%#.4X VA:%#llX\n",
                 task->itt, mem_reg->rkey,
-                (unsigned long long)mem_reg->va);
+                (unsigned long long)mem_reg->sge.addr);
 
        return 0;
 }
@@ -139,20 +139,20 @@ iser_prepare_write_cmd(struct iscsi_task *task,
        if (unsol_sz < edtl) {
                hdr->flags     |= ISER_WSV;
                hdr->write_stag = cpu_to_be32(mem_reg->rkey);
-               hdr->write_va   = cpu_to_be64(mem_reg->va + unsol_sz);
+               hdr->write_va   = cpu_to_be64(mem_reg->sge.addr + unsol_sz);
 
                iser_dbg("Cmd itt:%d, WRITE tags, RKEY:%#.4X "
                         "VA:%#llX + unsol:%d\n",
                         task->itt, mem_reg->rkey,
-                        (unsigned long long)mem_reg->va, unsol_sz);
+                        (unsigned long long)mem_reg->sge.addr, unsol_sz);
        }
 
        if (imm_sz > 0) {
                iser_dbg("Cmd itt:%d, WRITE, adding imm.data sz: %d\n",
                         task->itt, imm_sz);
-               tx_dsg->addr   = mem_reg->va;
+               tx_dsg->addr = mem_reg->sge.addr;
                tx_dsg->length = imm_sz;
-               tx_dsg->lkey   = mem_reg->lkey;
+               tx_dsg->lkey = mem_reg->sge.lkey;
                iser_task->desc.num_sge = 2;
        }
 
@@ -479,9 +479,9 @@ int iser_send_data_out(struct iscsi_conn *conn,
 
        mem_reg = &iser_task->rdma_reg[ISER_DIR_OUT];
        tx_dsg = &tx_desc->tx_sg[1];
-       tx_dsg->addr    = mem_reg->va + buf_offset;
-       tx_dsg->length  = data_seg_len;
-       tx_dsg->lkey    = mem_reg->lkey;
+       tx_dsg->addr = mem_reg->sge.addr + buf_offset;
+       tx_dsg->length = data_seg_len;
+       tx_dsg->lkey = mem_reg->sge.lkey;
        tx_desc->num_sge = 2;
 
        if (buf_offset + data_seg_len > iser_task->data[ISER_DIR_OUT].data_len) {
index 45f5120..40d22d5 100644 (file)
@@ -400,10 +400,10 @@ int iser_reg_page_vec(struct iscsi_iser_task *iser_task,
                return ret;
        }
 
-       mem_reg->lkey = fmr->fmr->lkey;
+       mem_reg->sge.lkey = fmr->fmr->lkey;
        mem_reg->rkey = fmr->fmr->rkey;
-       mem_reg->va = page_vec->pages[0] + page_vec->offset;
-       mem_reg->len = page_vec->data_size;
+       mem_reg->sge.addr = page_vec->pages[0] + page_vec->offset;
+       mem_reg->sge.length = page_vec->data_size;
        mem_reg->mem_h = fmr;
 
        return 0;
@@ -479,17 +479,17 @@ int iser_reg_rdma_mem_fmr(struct iscsi_iser_task *iser_task,
        if (mem->dma_nents == 1) {
                sg = mem->sg;
 
-               mem_reg->lkey = device->mr->lkey;
+               mem_reg->sge.lkey = device->mr->lkey;
                mem_reg->rkey = device->mr->rkey;
-               mem_reg->len  = ib_sg_dma_len(ibdev, &sg[0]);
-               mem_reg->va   = ib_sg_dma_address(ibdev, &sg[0]);
+               mem_reg->sge.length = ib_sg_dma_len(ibdev, &sg[0]);
+               mem_reg->sge.addr = ib_sg_dma_address(ibdev, &sg[0]);
 
                iser_dbg("PHYSICAL Mem.register: lkey: 0x%08X rkey: 0x%08X  "
                         "va: 0x%08lX sz: %ld]\n",
-                        (unsigned int)mem_reg->lkey,
+                        (unsigned int)mem_reg->sge.lkey,
                         (unsigned int)mem_reg->rkey,
-                        (unsigned long)mem_reg->va,
-                        (unsigned long)mem_reg->len);
+                        (unsigned long)mem_reg->sge.addr,
+                        (unsigned long)mem_reg->sge.length);
        } else { /* use FMR for multiple dma entries */
                err = iser_reg_page_vec(iser_task, mem, ib_conn->fmr.page_vec,
                                        mem_reg);
@@ -799,19 +799,19 @@ int iser_reg_rdma_mem_fastreg(struct iscsi_iser_task *iser_task,
                }
                desc->reg_indicators |= ISER_FASTREG_PROTECTED;
 
-               mem_reg->lkey = sig_sge.lkey;
+               mem_reg->sge.lkey = sig_sge.lkey;
                mem_reg->rkey = desc->pi_ctx->sig_mr->rkey;
-               mem_reg->va = sig_sge.addr;
-               mem_reg->len = sig_sge.length;
+               mem_reg->sge.addr = sig_sge.addr;
+               mem_reg->sge.length = sig_sge.length;
        } else {
                if (desc)
                        mem_reg->rkey = desc->data_mr->rkey;
                else
                        mem_reg->rkey = device->mr->rkey;
 
-               mem_reg->lkey = data_sge.lkey;
-               mem_reg->va = data_sge.addr;
-               mem_reg->len = data_sge.length;
+               mem_reg->sge.lkey = data_sge.lkey;
+               mem_reg->sge.addr = data_sge.addr;
+               mem_reg->sge.length = data_sge.length;
        }
 
        return 0;