diff options
author | Sagi Grimberg <sagig@mellanox.com> | 2014-03-05 12:43:43 -0500 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2014-03-18 01:33:57 -0400 |
commit | 73bc06b7edd8ce4ccbce7ffd28978ce16b97e5d8 (patch) | |
tree | a8f84b544a9f51a36db2fe47cf7e8fdf131cba76 /drivers/infiniband | |
parent | 65198d6b843bf43650781f71caac1266d6b407cb (diff) |
IB/iser: Replace fastreg descriptor valid bool with indicators container
In T10-PI support we will have memory keys for protection buffers and
signature transactions. We prefer to compact indicators rather than
keeping multiple bools.
This commit does not change any functionality.
Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Alex Tabachnik <alext@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/ulp/iser/iscsi_iser.h | 8 | ||||
-rw-r--r-- | drivers/infiniband/ulp/iser/iser_memory.c | 4 | ||||
-rw-r--r-- | drivers/infiniband/ulp/iser/iser_verbs.c | 2 |
3 files changed, 9 insertions, 5 deletions
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.h b/drivers/infiniband/ulp/iser/iscsi_iser.h index b4290f509a39..56607140ff3a 100644 --- a/drivers/infiniband/ulp/iser/iscsi_iser.h +++ b/drivers/infiniband/ulp/iser/iscsi_iser.h | |||
@@ -280,13 +280,17 @@ struct iser_device { | |||
280 | enum iser_data_dir cmd_dir); | 280 | enum iser_data_dir cmd_dir); |
281 | }; | 281 | }; |
282 | 282 | ||
283 | enum iser_reg_indicator { | ||
284 | ISER_DATA_KEY_VALID = 1 << 0, | ||
285 | }; | ||
286 | |||
283 | struct fast_reg_descriptor { | 287 | struct fast_reg_descriptor { |
284 | struct list_head list; | 288 | struct list_head list; |
285 | /* For fast registration - FRWR */ | 289 | /* For fast registration - FRWR */ |
286 | struct ib_mr *data_mr; | 290 | struct ib_mr *data_mr; |
287 | struct ib_fast_reg_page_list *data_frpl; | 291 | struct ib_fast_reg_page_list *data_frpl; |
288 | /* Valid for fast registration flag */ | 292 | /* registration indicators container */ |
289 | bool valid; | 293 | u8 reg_indicators; |
290 | }; | 294 | }; |
291 | 295 | ||
292 | struct iser_conn { | 296 | struct iser_conn { |
diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c index d25587e2f296..a7a0d3e8f822 100644 --- a/drivers/infiniband/ulp/iser/iser_memory.c +++ b/drivers/infiniband/ulp/iser/iser_memory.c | |||
@@ -479,7 +479,7 @@ static int iser_fast_reg_mr(struct iscsi_iser_task *iser_task, | |||
479 | return -EINVAL; | 479 | return -EINVAL; |
480 | } | 480 | } |
481 | 481 | ||
482 | if (!desc->valid) { | 482 | if (!(desc->reg_indicators & ISER_DATA_KEY_VALID)) { |
483 | memset(&inv_wr, 0, sizeof(inv_wr)); | 483 | memset(&inv_wr, 0, sizeof(inv_wr)); |
484 | inv_wr.wr_id = ISER_FASTREG_LI_WRID; | 484 | inv_wr.wr_id = ISER_FASTREG_LI_WRID; |
485 | inv_wr.opcode = IB_WR_LOCAL_INV; | 485 | inv_wr.opcode = IB_WR_LOCAL_INV; |
@@ -514,7 +514,7 @@ static int iser_fast_reg_mr(struct iscsi_iser_task *iser_task, | |||
514 | iser_err("fast registration failed, ret:%d\n", ret); | 514 | iser_err("fast registration failed, ret:%d\n", ret); |
515 | return ret; | 515 | return ret; |
516 | } | 516 | } |
517 | desc->valid = false; | 517 | desc->reg_indicators &= ~ISER_DATA_KEY_VALID; |
518 | 518 | ||
519 | sge->lkey = desc->data_mr->lkey; | 519 | sge->lkey = desc->data_mr->lkey; |
520 | sge->addr = desc->data_frpl->page_list[0] + offset; | 520 | sge->addr = desc->data_frpl->page_list[0] + offset; |
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c index 95fcfcac0100..6a5f4245182a 100644 --- a/drivers/infiniband/ulp/iser/iser_verbs.c +++ b/drivers/infiniband/ulp/iser/iser_verbs.c | |||
@@ -296,7 +296,7 @@ iser_create_fastreg_desc(struct ib_device *ib_device, struct ib_pd *pd, | |||
296 | } | 296 | } |
297 | iser_info("Create fr_desc %p page_list %p\n", | 297 | iser_info("Create fr_desc %p page_list %p\n", |
298 | desc, desc->data_frpl->page_list); | 298 | desc, desc->data_frpl->page_list); |
299 | desc->valid = true; | 299 | desc->reg_indicators |= ISER_DATA_KEY_VALID; |
300 | 300 | ||
301 | return 0; | 301 | return 0; |
302 | 302 | ||