aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSagi Grimberg <sagig@mellanox.com>2014-12-07 09:10:02 -0500
committerRoland Dreier <roland@purestorage.com>2014-12-15 21:11:45 -0500
commit7e1fd4d1e3c801a07609300e03912524b3abb5cb (patch)
treed0fada6fa9449f7b658dfc2517745956ae26ade0
parenta11b3e69359f00ebf75c7f81d1a90ed82a87676d (diff)
IB/iser: Remove redundant is_mr indicator
It is enough to check mem_h pointer assignment, mem_h == NULL will indicate that buffer is not registered using mr. Signed-off-by: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
-rw-r--r--drivers/infiniband/ulp/iser/iscsi_iser.h2
-rw-r--r--drivers/infiniband/ulp/iser/iser_memory.c9
-rw-r--r--drivers/infiniband/ulp/iser/iser_verbs.c6
3 files changed, 4 insertions, 13 deletions
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.h b/drivers/infiniband/ulp/iser/iscsi_iser.h
index 8a5663dae87a..e34263cbecc3 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.h
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.h
@@ -252,7 +252,6 @@ struct iscsi_endpoint;
252 * @va: MR start address (buffer va) 252 * @va: MR start address (buffer va)
253 * @len: MR length 253 * @len: MR length
254 * @mem_h: pointer to registration context (FMR/Fastreg) 254 * @mem_h: pointer to registration context (FMR/Fastreg)
255 * @is_mr: indicates weather we registered the buffer
256 */ 255 */
257struct iser_mem_reg { 256struct iser_mem_reg {
258 u32 lkey; 257 u32 lkey;
@@ -260,7 +259,6 @@ struct iser_mem_reg {
260 u64 va; 259 u64 va;
261 u64 len; 260 u64 len;
262 void *mem_h; 261 void *mem_h;
263 int is_mr;
264}; 262};
265 263
266/** 264/**
diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c
index a70fd9ae7567..d83270511079 100644
--- a/drivers/infiniband/ulp/iser/iser_memory.c
+++ b/drivers/infiniband/ulp/iser/iser_memory.c
@@ -408,7 +408,6 @@ int iser_reg_rdma_mem_fmr(struct iscsi_iser_task *iser_task,
408 regd_buf->reg.rkey = device->mr->rkey; 408 regd_buf->reg.rkey = device->mr->rkey;
409 regd_buf->reg.len = ib_sg_dma_len(ibdev, &sg[0]); 409 regd_buf->reg.len = ib_sg_dma_len(ibdev, &sg[0]);
410 regd_buf->reg.va = ib_sg_dma_address(ibdev, &sg[0]); 410 regd_buf->reg.va = ib_sg_dma_address(ibdev, &sg[0]);
411 regd_buf->reg.is_mr = 0;
412 411
413 iser_dbg("PHYSICAL Mem.register: lkey: 0x%08X rkey: 0x%08X " 412 iser_dbg("PHYSICAL Mem.register: lkey: 0x%08X rkey: 0x%08X "
414 "va: 0x%08lX sz: %ld]\n", 413 "va: 0x%08lX sz: %ld]\n",
@@ -769,15 +768,11 @@ int iser_reg_rdma_mem_fastreg(struct iscsi_iser_task *iser_task,
769 regd_buf->reg.rkey = desc->pi_ctx->sig_mr->rkey; 768 regd_buf->reg.rkey = desc->pi_ctx->sig_mr->rkey;
770 regd_buf->reg.va = sig_sge.addr; 769 regd_buf->reg.va = sig_sge.addr;
771 regd_buf->reg.len = sig_sge.length; 770 regd_buf->reg.len = sig_sge.length;
772 regd_buf->reg.is_mr = 1;
773 } else { 771 } else {
774 if (desc) { 772 if (desc)
775 regd_buf->reg.rkey = desc->data_mr->rkey; 773 regd_buf->reg.rkey = desc->data_mr->rkey;
776 regd_buf->reg.is_mr = 1; 774 else
777 } else {
778 regd_buf->reg.rkey = device->mr->rkey; 775 regd_buf->reg.rkey = device->mr->rkey;
779 regd_buf->reg.is_mr = 0;
780 }
781 776
782 regd_buf->reg.lkey = data_sge.lkey; 777 regd_buf->reg.lkey = data_sge.lkey;
783 regd_buf->reg.va = data_sge.addr; 778 regd_buf->reg.va = data_sge.addr;
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index fb5ec3553de8..ad493d285be1 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -1009,7 +1009,6 @@ int iser_reg_page_vec(struct ib_conn *ib_conn,
1009 mem_reg->rkey = mem->fmr->rkey; 1009 mem_reg->rkey = mem->fmr->rkey;
1010 mem_reg->len = page_vec->length * SIZE_4K; 1010 mem_reg->len = page_vec->length * SIZE_4K;
1011 mem_reg->va = io_addr; 1011 mem_reg->va = io_addr;
1012 mem_reg->is_mr = 1;
1013 mem_reg->mem_h = (void *)mem; 1012 mem_reg->mem_h = (void *)mem;
1014 1013
1015 mem_reg->va += page_vec->offset; 1014 mem_reg->va += page_vec->offset;
@@ -1036,7 +1035,7 @@ void iser_unreg_mem_fmr(struct iscsi_iser_task *iser_task,
1036 struct iser_mem_reg *reg = &iser_task->rdma_regd[cmd_dir].reg; 1035 struct iser_mem_reg *reg = &iser_task->rdma_regd[cmd_dir].reg;
1037 int ret; 1036 int ret;
1038 1037
1039 if (!reg->is_mr) 1038 if (!reg->mem_h)
1040 return; 1039 return;
1041 1040
1042 iser_dbg("PHYSICAL Mem.Unregister mem_h %p\n",reg->mem_h); 1041 iser_dbg("PHYSICAL Mem.Unregister mem_h %p\n",reg->mem_h);
@@ -1056,11 +1055,10 @@ void iser_unreg_mem_fastreg(struct iscsi_iser_task *iser_task,
1056 struct ib_conn *ib_conn = &iser_conn->ib_conn; 1055 struct ib_conn *ib_conn = &iser_conn->ib_conn;
1057 struct fast_reg_descriptor *desc = reg->mem_h; 1056 struct fast_reg_descriptor *desc = reg->mem_h;
1058 1057
1059 if (!reg->is_mr) 1058 if (!desc)
1060 return; 1059 return;
1061 1060
1062 reg->mem_h = NULL; 1061 reg->mem_h = NULL;
1063 reg->is_mr = 0;
1064 spin_lock_bh(&ib_conn->lock); 1062 spin_lock_bh(&ib_conn->lock);
1065 list_add_tail(&desc->list, &ib_conn->fastreg.pool); 1063 list_add_tail(&desc->list, &ib_conn->fastreg.pool);
1066 spin_unlock_bh(&ib_conn->lock); 1064 spin_unlock_bh(&ib_conn->lock);