提交 7e1fd4d1 编写于 作者: S Sagi Grimberg 提交者: Roland Dreier

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: NSagi Grimberg <sagig@mellanox.com>
Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: NRoland Dreier <roland@purestorage.com>
上级 a11b3e69
...@@ -252,7 +252,6 @@ struct iscsi_endpoint; ...@@ -252,7 +252,6 @@ struct iscsi_endpoint;
* @va: MR start address (buffer va) * @va: MR start address (buffer va)
* @len: MR length * @len: MR length
* @mem_h: pointer to registration context (FMR/Fastreg) * @mem_h: pointer to registration context (FMR/Fastreg)
* @is_mr: indicates weather we registered the buffer
*/ */
struct iser_mem_reg { struct iser_mem_reg {
u32 lkey; u32 lkey;
...@@ -260,7 +259,6 @@ struct iser_mem_reg { ...@@ -260,7 +259,6 @@ struct iser_mem_reg {
u64 va; u64 va;
u64 len; u64 len;
void *mem_h; void *mem_h;
int is_mr;
}; };
/** /**
......
...@@ -408,7 +408,6 @@ int iser_reg_rdma_mem_fmr(struct iscsi_iser_task *iser_task, ...@@ -408,7 +408,6 @@ int iser_reg_rdma_mem_fmr(struct iscsi_iser_task *iser_task,
regd_buf->reg.rkey = device->mr->rkey; regd_buf->reg.rkey = device->mr->rkey;
regd_buf->reg.len = ib_sg_dma_len(ibdev, &sg[0]); regd_buf->reg.len = ib_sg_dma_len(ibdev, &sg[0]);
regd_buf->reg.va = ib_sg_dma_address(ibdev, &sg[0]); regd_buf->reg.va = ib_sg_dma_address(ibdev, &sg[0]);
regd_buf->reg.is_mr = 0;
iser_dbg("PHYSICAL Mem.register: lkey: 0x%08X rkey: 0x%08X " iser_dbg("PHYSICAL Mem.register: lkey: 0x%08X rkey: 0x%08X "
"va: 0x%08lX sz: %ld]\n", "va: 0x%08lX sz: %ld]\n",
...@@ -769,15 +768,11 @@ int iser_reg_rdma_mem_fastreg(struct iscsi_iser_task *iser_task, ...@@ -769,15 +768,11 @@ int iser_reg_rdma_mem_fastreg(struct iscsi_iser_task *iser_task,
regd_buf->reg.rkey = desc->pi_ctx->sig_mr->rkey; regd_buf->reg.rkey = desc->pi_ctx->sig_mr->rkey;
regd_buf->reg.va = sig_sge.addr; regd_buf->reg.va = sig_sge.addr;
regd_buf->reg.len = sig_sge.length; regd_buf->reg.len = sig_sge.length;
regd_buf->reg.is_mr = 1;
} else { } else {
if (desc) { if (desc)
regd_buf->reg.rkey = desc->data_mr->rkey; regd_buf->reg.rkey = desc->data_mr->rkey;
regd_buf->reg.is_mr = 1; else
} else {
regd_buf->reg.rkey = device->mr->rkey; regd_buf->reg.rkey = device->mr->rkey;
regd_buf->reg.is_mr = 0;
}
regd_buf->reg.lkey = data_sge.lkey; regd_buf->reg.lkey = data_sge.lkey;
regd_buf->reg.va = data_sge.addr; regd_buf->reg.va = data_sge.addr;
......
...@@ -1009,7 +1009,6 @@ int iser_reg_page_vec(struct ib_conn *ib_conn, ...@@ -1009,7 +1009,6 @@ int iser_reg_page_vec(struct ib_conn *ib_conn,
mem_reg->rkey = mem->fmr->rkey; mem_reg->rkey = mem->fmr->rkey;
mem_reg->len = page_vec->length * SIZE_4K; mem_reg->len = page_vec->length * SIZE_4K;
mem_reg->va = io_addr; mem_reg->va = io_addr;
mem_reg->is_mr = 1;
mem_reg->mem_h = (void *)mem; mem_reg->mem_h = (void *)mem;
mem_reg->va += page_vec->offset; mem_reg->va += page_vec->offset;
...@@ -1036,7 +1035,7 @@ void iser_unreg_mem_fmr(struct iscsi_iser_task *iser_task, ...@@ -1036,7 +1035,7 @@ void iser_unreg_mem_fmr(struct iscsi_iser_task *iser_task,
struct iser_mem_reg *reg = &iser_task->rdma_regd[cmd_dir].reg; struct iser_mem_reg *reg = &iser_task->rdma_regd[cmd_dir].reg;
int ret; int ret;
if (!reg->is_mr) if (!reg->mem_h)
return; return;
iser_dbg("PHYSICAL Mem.Unregister mem_h %p\n",reg->mem_h); 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,11 +1055,10 @@ void iser_unreg_mem_fastreg(struct iscsi_iser_task *iser_task,
struct ib_conn *ib_conn = &iser_conn->ib_conn; struct ib_conn *ib_conn = &iser_conn->ib_conn;
struct fast_reg_descriptor *desc = reg->mem_h; struct fast_reg_descriptor *desc = reg->mem_h;
if (!reg->is_mr) if (!desc)
return; return;
reg->mem_h = NULL; reg->mem_h = NULL;
reg->is_mr = 0;
spin_lock_bh(&ib_conn->lock); spin_lock_bh(&ib_conn->lock);
list_add_tail(&desc->list, &ib_conn->fastreg.pool); list_add_tail(&desc->list, &ib_conn->fastreg.pool);
spin_unlock_bh(&ib_conn->lock); spin_unlock_bh(&ib_conn->lock);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册