diff options
-rw-r--r-- | drivers/infiniband/ulp/iser/iscsi_iser.h | 21 | ||||
-rw-r--r-- | drivers/infiniband/ulp/iser/iser_initiator.c | 44 | ||||
-rw-r--r-- | drivers/infiniband/ulp/iser/iser_memory.c | 56 | ||||
-rw-r--r-- | drivers/infiniband/ulp/iser/iser_verbs.c | 2 |
4 files changed, 53 insertions, 70 deletions
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.h b/drivers/infiniband/ulp/iser/iscsi_iser.h index d5e5288fe3dd..8133678b6218 100644 --- a/drivers/infiniband/ulp/iser/iscsi_iser.h +++ b/drivers/infiniband/ulp/iser/iscsi_iser.h | |||
@@ -261,23 +261,6 @@ struct iser_mem_reg { | |||
261 | void *mem_h; | 261 | void *mem_h; |
262 | }; | 262 | }; |
263 | 263 | ||
264 | /** | ||
265 | * struct iser_regd_buf - iSER buffer registration desc | ||
266 | * | ||
267 | * @reg: memory registration info | ||
268 | * @virt_addr: virtual address of buffer | ||
269 | * @device: reference to iser device | ||
270 | * @direction: dma direction (for dma_unmap) | ||
271 | * @data_size: data buffer size in bytes | ||
272 | */ | ||
273 | struct iser_regd_buf { | ||
274 | struct iser_mem_reg reg; | ||
275 | void *virt_addr; | ||
276 | struct iser_device *device; | ||
277 | enum dma_data_direction direction; | ||
278 | unsigned int data_size; | ||
279 | }; | ||
280 | |||
281 | enum iser_desc_type { | 264 | enum iser_desc_type { |
282 | ISCSI_TX_CONTROL , | 265 | ISCSI_TX_CONTROL , |
283 | ISCSI_TX_SCSI_COMMAND, | 266 | ISCSI_TX_SCSI_COMMAND, |
@@ -537,7 +520,7 @@ struct iser_conn { | |||
537 | * @sc: link to scsi command | 520 | * @sc: link to scsi command |
538 | * @command_sent: indicate if command was sent | 521 | * @command_sent: indicate if command was sent |
539 | * @dir: iser data direction | 522 | * @dir: iser data direction |
540 | * @rdma_regd: task rdma registration desc | 523 | * @rdma_reg: task rdma registration desc |
541 | * @data: iser data buffer desc | 524 | * @data: iser data buffer desc |
542 | * @prot: iser protection buffer desc | 525 | * @prot: iser protection buffer desc |
543 | */ | 526 | */ |
@@ -548,7 +531,7 @@ struct iscsi_iser_task { | |||
548 | struct scsi_cmnd *sc; | 531 | struct scsi_cmnd *sc; |
549 | int command_sent; | 532 | int command_sent; |
550 | int dir[ISER_DIRS_NUM]; | 533 | int dir[ISER_DIRS_NUM]; |
551 | struct iser_regd_buf rdma_regd[ISER_DIRS_NUM]; | 534 | struct iser_mem_reg rdma_reg[ISER_DIRS_NUM]; |
552 | struct iser_data_buf data[ISER_DIRS_NUM]; | 535 | struct iser_data_buf data[ISER_DIRS_NUM]; |
553 | struct iser_data_buf prot[ISER_DIRS_NUM]; | 536 | struct iser_data_buf prot[ISER_DIRS_NUM]; |
554 | }; | 537 | }; |
diff --git a/drivers/infiniband/ulp/iser/iser_initiator.c b/drivers/infiniband/ulp/iser/iser_initiator.c index 0e414dbaa523..420a613fe9f5 100644 --- a/drivers/infiniband/ulp/iser/iser_initiator.c +++ b/drivers/infiniband/ulp/iser/iser_initiator.c | |||
@@ -50,7 +50,7 @@ static int iser_prepare_read_cmd(struct iscsi_task *task) | |||
50 | { | 50 | { |
51 | struct iscsi_iser_task *iser_task = task->dd_data; | 51 | struct iscsi_iser_task *iser_task = task->dd_data; |
52 | struct iser_device *device = iser_task->iser_conn->ib_conn.device; | 52 | struct iser_device *device = iser_task->iser_conn->ib_conn.device; |
53 | struct iser_regd_buf *regd_buf; | 53 | struct iser_mem_reg *mem_reg; |
54 | int err; | 54 | int err; |
55 | struct iser_hdr *hdr = &iser_task->desc.iser_header; | 55 | struct iser_hdr *hdr = &iser_task->desc.iser_header; |
56 | struct iser_data_buf *buf_in = &iser_task->data[ISER_DIR_IN]; | 56 | struct iser_data_buf *buf_in = &iser_task->data[ISER_DIR_IN]; |
@@ -78,15 +78,15 @@ static int iser_prepare_read_cmd(struct iscsi_task *task) | |||
78 | iser_err("Failed to set up Data-IN RDMA\n"); | 78 | iser_err("Failed to set up Data-IN RDMA\n"); |
79 | return err; | 79 | return err; |
80 | } | 80 | } |
81 | regd_buf = &iser_task->rdma_regd[ISER_DIR_IN]; | 81 | mem_reg = &iser_task->rdma_reg[ISER_DIR_IN]; |
82 | 82 | ||
83 | hdr->flags |= ISER_RSV; | 83 | hdr->flags |= ISER_RSV; |
84 | hdr->read_stag = cpu_to_be32(regd_buf->reg.rkey); | 84 | hdr->read_stag = cpu_to_be32(mem_reg->rkey); |
85 | hdr->read_va = cpu_to_be64(regd_buf->reg.va); | 85 | hdr->read_va = cpu_to_be64(mem_reg->va); |
86 | 86 | ||
87 | iser_dbg("Cmd itt:%d READ tags RKEY:%#.4X VA:%#llX\n", | 87 | iser_dbg("Cmd itt:%d READ tags RKEY:%#.4X VA:%#llX\n", |
88 | task->itt, regd_buf->reg.rkey, | 88 | task->itt, mem_reg->rkey, |
89 | (unsigned long long)regd_buf->reg.va); | 89 | (unsigned long long)mem_reg->va); |
90 | 90 | ||
91 | return 0; | 91 | return 0; |
92 | } | 92 | } |
@@ -104,7 +104,7 @@ iser_prepare_write_cmd(struct iscsi_task *task, | |||
104 | { | 104 | { |
105 | struct iscsi_iser_task *iser_task = task->dd_data; | 105 | struct iscsi_iser_task *iser_task = task->dd_data; |
106 | struct iser_device *device = iser_task->iser_conn->ib_conn.device; | 106 | struct iser_device *device = iser_task->iser_conn->ib_conn.device; |
107 | struct iser_regd_buf *regd_buf; | 107 | struct iser_mem_reg *mem_reg; |
108 | int err; | 108 | int err; |
109 | struct iser_hdr *hdr = &iser_task->desc.iser_header; | 109 | struct iser_hdr *hdr = &iser_task->desc.iser_header; |
110 | struct iser_data_buf *buf_out = &iser_task->data[ISER_DIR_OUT]; | 110 | struct iser_data_buf *buf_out = &iser_task->data[ISER_DIR_OUT]; |
@@ -134,25 +134,25 @@ iser_prepare_write_cmd(struct iscsi_task *task, | |||
134 | return err; | 134 | return err; |
135 | } | 135 | } |
136 | 136 | ||
137 | regd_buf = &iser_task->rdma_regd[ISER_DIR_OUT]; | 137 | mem_reg = &iser_task->rdma_reg[ISER_DIR_OUT]; |
138 | 138 | ||
139 | if (unsol_sz < edtl) { | 139 | if (unsol_sz < edtl) { |
140 | hdr->flags |= ISER_WSV; | 140 | hdr->flags |= ISER_WSV; |
141 | hdr->write_stag = cpu_to_be32(regd_buf->reg.rkey); | 141 | hdr->write_stag = cpu_to_be32(mem_reg->rkey); |
142 | hdr->write_va = cpu_to_be64(regd_buf->reg.va + unsol_sz); | 142 | hdr->write_va = cpu_to_be64(mem_reg->va + unsol_sz); |
143 | 143 | ||
144 | iser_dbg("Cmd itt:%d, WRITE tags, RKEY:%#.4X " | 144 | iser_dbg("Cmd itt:%d, WRITE tags, RKEY:%#.4X " |
145 | "VA:%#llX + unsol:%d\n", | 145 | "VA:%#llX + unsol:%d\n", |
146 | task->itt, regd_buf->reg.rkey, | 146 | task->itt, mem_reg->rkey, |
147 | (unsigned long long)regd_buf->reg.va, unsol_sz); | 147 | (unsigned long long)mem_reg->va, unsol_sz); |
148 | } | 148 | } |
149 | 149 | ||
150 | if (imm_sz > 0) { | 150 | if (imm_sz > 0) { |
151 | iser_dbg("Cmd itt:%d, WRITE, adding imm.data sz: %d\n", | 151 | iser_dbg("Cmd itt:%d, WRITE, adding imm.data sz: %d\n", |
152 | task->itt, imm_sz); | 152 | task->itt, imm_sz); |
153 | tx_dsg->addr = regd_buf->reg.va; | 153 | tx_dsg->addr = mem_reg->va; |
154 | tx_dsg->length = imm_sz; | 154 | tx_dsg->length = imm_sz; |
155 | tx_dsg->lkey = regd_buf->reg.lkey; | 155 | tx_dsg->lkey = mem_reg->lkey; |
156 | iser_task->desc.num_sge = 2; | 156 | iser_task->desc.num_sge = 2; |
157 | } | 157 | } |
158 | 158 | ||
@@ -450,7 +450,7 @@ int iser_send_data_out(struct iscsi_conn *conn, | |||
450 | struct iser_conn *iser_conn = conn->dd_data; | 450 | struct iser_conn *iser_conn = conn->dd_data; |
451 | struct iscsi_iser_task *iser_task = task->dd_data; | 451 | struct iscsi_iser_task *iser_task = task->dd_data; |
452 | struct iser_tx_desc *tx_desc = NULL; | 452 | struct iser_tx_desc *tx_desc = NULL; |
453 | struct iser_regd_buf *regd_buf; | 453 | struct iser_mem_reg *mem_reg; |
454 | unsigned long buf_offset; | 454 | unsigned long buf_offset; |
455 | unsigned long data_seg_len; | 455 | unsigned long data_seg_len; |
456 | uint32_t itt; | 456 | uint32_t itt; |
@@ -477,11 +477,11 @@ int iser_send_data_out(struct iscsi_conn *conn, | |||
477 | /* build the tx desc */ | 477 | /* build the tx desc */ |
478 | iser_initialize_task_headers(task, tx_desc); | 478 | iser_initialize_task_headers(task, tx_desc); |
479 | 479 | ||
480 | regd_buf = &iser_task->rdma_regd[ISER_DIR_OUT]; | 480 | mem_reg = &iser_task->rdma_reg[ISER_DIR_OUT]; |
481 | tx_dsg = &tx_desc->tx_sg[1]; | 481 | tx_dsg = &tx_desc->tx_sg[1]; |
482 | tx_dsg->addr = regd_buf->reg.va + buf_offset; | 482 | tx_dsg->addr = mem_reg->va + buf_offset; |
483 | tx_dsg->length = data_seg_len; | 483 | tx_dsg->length = data_seg_len; |
484 | tx_dsg->lkey = regd_buf->reg.lkey; | 484 | tx_dsg->lkey = mem_reg->lkey; |
485 | tx_desc->num_sge = 2; | 485 | tx_desc->num_sge = 2; |
486 | 486 | ||
487 | if (buf_offset + data_seg_len > iser_task->data[ISER_DIR_OUT].data_len) { | 487 | if (buf_offset + data_seg_len > iser_task->data[ISER_DIR_OUT].data_len) { |
@@ -658,10 +658,10 @@ void iser_task_rdma_init(struct iscsi_iser_task *iser_task) | |||
658 | iser_task->prot[ISER_DIR_IN].data_len = 0; | 658 | iser_task->prot[ISER_DIR_IN].data_len = 0; |
659 | iser_task->prot[ISER_DIR_OUT].data_len = 0; | 659 | iser_task->prot[ISER_DIR_OUT].data_len = 0; |
660 | 660 | ||
661 | memset(&iser_task->rdma_regd[ISER_DIR_IN], 0, | 661 | memset(&iser_task->rdma_reg[ISER_DIR_IN], 0, |
662 | sizeof(struct iser_regd_buf)); | 662 | sizeof(struct iser_mem_reg)); |
663 | memset(&iser_task->rdma_regd[ISER_DIR_OUT], 0, | 663 | memset(&iser_task->rdma_reg[ISER_DIR_OUT], 0, |
664 | sizeof(struct iser_regd_buf)); | 664 | sizeof(struct iser_mem_reg)); |
665 | } | 665 | } |
666 | 666 | ||
667 | void iser_task_rdma_finalize(struct iscsi_iser_task *iser_task) | 667 | void iser_task_rdma_finalize(struct iscsi_iser_task *iser_task) |
diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c index cb308650b94a..0b8656fcbc0d 100644 --- a/drivers/infiniband/ulp/iser/iser_memory.c +++ b/drivers/infiniband/ulp/iser/iser_memory.c | |||
@@ -414,7 +414,7 @@ int iser_reg_page_vec(struct ib_conn *ib_conn, | |||
414 | void iser_unreg_mem_fmr(struct iscsi_iser_task *iser_task, | 414 | void iser_unreg_mem_fmr(struct iscsi_iser_task *iser_task, |
415 | enum iser_data_dir cmd_dir) | 415 | enum iser_data_dir cmd_dir) |
416 | { | 416 | { |
417 | struct iser_mem_reg *reg = &iser_task->rdma_regd[cmd_dir].reg; | 417 | struct iser_mem_reg *reg = &iser_task->rdma_reg[cmd_dir]; |
418 | int ret; | 418 | int ret; |
419 | 419 | ||
420 | if (!reg->mem_h) | 420 | if (!reg->mem_h) |
@@ -432,7 +432,7 @@ void iser_unreg_mem_fmr(struct iscsi_iser_task *iser_task, | |||
432 | void iser_unreg_mem_fastreg(struct iscsi_iser_task *iser_task, | 432 | void iser_unreg_mem_fastreg(struct iscsi_iser_task *iser_task, |
433 | enum iser_data_dir cmd_dir) | 433 | enum iser_data_dir cmd_dir) |
434 | { | 434 | { |
435 | struct iser_mem_reg *reg = &iser_task->rdma_regd[cmd_dir].reg; | 435 | struct iser_mem_reg *reg = &iser_task->rdma_reg[cmd_dir]; |
436 | struct iser_conn *iser_conn = iser_task->iser_conn; | 436 | struct iser_conn *iser_conn = iser_task->iser_conn; |
437 | struct ib_conn *ib_conn = &iser_conn->ib_conn; | 437 | struct ib_conn *ib_conn = &iser_conn->ib_conn; |
438 | struct fast_reg_descriptor *desc = reg->mem_h; | 438 | struct fast_reg_descriptor *desc = reg->mem_h; |
@@ -459,13 +459,13 @@ int iser_reg_rdma_mem_fmr(struct iscsi_iser_task *iser_task, | |||
459 | struct iser_device *device = ib_conn->device; | 459 | struct iser_device *device = ib_conn->device; |
460 | struct ib_device *ibdev = device->ib_device; | 460 | struct ib_device *ibdev = device->ib_device; |
461 | struct iser_data_buf *mem = &iser_task->data[cmd_dir]; | 461 | struct iser_data_buf *mem = &iser_task->data[cmd_dir]; |
462 | struct iser_regd_buf *regd_buf; | 462 | struct iser_mem_reg *mem_reg; |
463 | int aligned_len; | 463 | int aligned_len; |
464 | int err; | 464 | int err; |
465 | int i; | 465 | int i; |
466 | struct scatterlist *sg; | 466 | struct scatterlist *sg; |
467 | 467 | ||
468 | regd_buf = &iser_task->rdma_regd[cmd_dir]; | 468 | mem_reg = &iser_task->rdma_reg[cmd_dir]; |
469 | 469 | ||
470 | aligned_len = iser_data_buf_aligned_len(mem, ibdev); | 470 | aligned_len = iser_data_buf_aligned_len(mem, ibdev); |
471 | if (aligned_len != mem->dma_nents) { | 471 | if (aligned_len != mem->dma_nents) { |
@@ -481,21 +481,21 @@ int iser_reg_rdma_mem_fmr(struct iscsi_iser_task *iser_task, | |||
481 | if (mem->dma_nents == 1) { | 481 | if (mem->dma_nents == 1) { |
482 | sg = mem->sg; | 482 | sg = mem->sg; |
483 | 483 | ||
484 | regd_buf->reg.lkey = device->mr->lkey; | 484 | mem_reg->lkey = device->mr->lkey; |
485 | regd_buf->reg.rkey = device->mr->rkey; | 485 | mem_reg->rkey = device->mr->rkey; |
486 | regd_buf->reg.len = ib_sg_dma_len(ibdev, &sg[0]); | 486 | mem_reg->len = ib_sg_dma_len(ibdev, &sg[0]); |
487 | regd_buf->reg.va = ib_sg_dma_address(ibdev, &sg[0]); | 487 | mem_reg->va = ib_sg_dma_address(ibdev, &sg[0]); |
488 | 488 | ||
489 | iser_dbg("PHYSICAL Mem.register: lkey: 0x%08X rkey: 0x%08X " | 489 | iser_dbg("PHYSICAL Mem.register: lkey: 0x%08X rkey: 0x%08X " |
490 | "va: 0x%08lX sz: %ld]\n", | 490 | "va: 0x%08lX sz: %ld]\n", |
491 | (unsigned int)regd_buf->reg.lkey, | 491 | (unsigned int)mem_reg->lkey, |
492 | (unsigned int)regd_buf->reg.rkey, | 492 | (unsigned int)mem_reg->rkey, |
493 | (unsigned long)regd_buf->reg.va, | 493 | (unsigned long)mem_reg->va, |
494 | (unsigned long)regd_buf->reg.len); | 494 | (unsigned long)mem_reg->len); |
495 | } else { /* use FMR for multiple dma entries */ | 495 | } else { /* use FMR for multiple dma entries */ |
496 | iser_page_vec_build(mem, ib_conn->fmr.page_vec, ibdev); | 496 | iser_page_vec_build(mem, ib_conn->fmr.page_vec, ibdev); |
497 | err = iser_reg_page_vec(ib_conn, ib_conn->fmr.page_vec, | 497 | err = iser_reg_page_vec(ib_conn, ib_conn->fmr.page_vec, |
498 | ®d_buf->reg); | 498 | mem_reg); |
499 | if (err && err != -EAGAIN) { | 499 | if (err && err != -EAGAIN) { |
500 | iser_data_buf_dump(mem, ibdev); | 500 | iser_data_buf_dump(mem, ibdev); |
501 | iser_err("mem->dma_nents = %d (dlength = 0x%x)\n", | 501 | iser_err("mem->dma_nents = %d (dlength = 0x%x)\n", |
@@ -652,12 +652,12 @@ err: | |||
652 | } | 652 | } |
653 | 653 | ||
654 | static int iser_fast_reg_mr(struct iscsi_iser_task *iser_task, | 654 | static int iser_fast_reg_mr(struct iscsi_iser_task *iser_task, |
655 | struct iser_regd_buf *regd_buf, | 655 | struct iser_mem_reg *mem_reg, |
656 | struct iser_data_buf *mem, | 656 | struct iser_data_buf *mem, |
657 | enum iser_reg_indicator ind, | 657 | enum iser_reg_indicator ind, |
658 | struct ib_sge *sge) | 658 | struct ib_sge *sge) |
659 | { | 659 | { |
660 | struct fast_reg_descriptor *desc = regd_buf->reg.mem_h; | 660 | struct fast_reg_descriptor *desc = mem_reg->mem_h; |
661 | struct ib_conn *ib_conn = &iser_task->iser_conn->ib_conn; | 661 | struct ib_conn *ib_conn = &iser_task->iser_conn->ib_conn; |
662 | struct iser_device *device = ib_conn->device; | 662 | struct iser_device *device = ib_conn->device; |
663 | struct ib_device *ibdev = device->ib_device; | 663 | struct ib_device *ibdev = device->ib_device; |
@@ -746,7 +746,7 @@ int iser_reg_rdma_mem_fastreg(struct iscsi_iser_task *iser_task, | |||
746 | struct iser_device *device = ib_conn->device; | 746 | struct iser_device *device = ib_conn->device; |
747 | struct ib_device *ibdev = device->ib_device; | 747 | struct ib_device *ibdev = device->ib_device; |
748 | struct iser_data_buf *mem = &iser_task->data[cmd_dir]; | 748 | struct iser_data_buf *mem = &iser_task->data[cmd_dir]; |
749 | struct iser_regd_buf *regd_buf = &iser_task->rdma_regd[cmd_dir]; | 749 | struct iser_mem_reg *mem_reg = &iser_task->rdma_reg[cmd_dir]; |
750 | struct fast_reg_descriptor *desc = NULL; | 750 | struct fast_reg_descriptor *desc = NULL; |
751 | struct ib_sge data_sge; | 751 | struct ib_sge data_sge; |
752 | int err, aligned_len; | 752 | int err, aligned_len; |
@@ -769,10 +769,10 @@ int iser_reg_rdma_mem_fastreg(struct iscsi_iser_task *iser_task, | |||
769 | struct fast_reg_descriptor, list); | 769 | struct fast_reg_descriptor, list); |
770 | list_del(&desc->list); | 770 | list_del(&desc->list); |
771 | spin_unlock_irqrestore(&ib_conn->lock, flags); | 771 | spin_unlock_irqrestore(&ib_conn->lock, flags); |
772 | regd_buf->reg.mem_h = desc; | 772 | mem_reg->mem_h = desc; |
773 | } | 773 | } |
774 | 774 | ||
775 | err = iser_fast_reg_mr(iser_task, regd_buf, mem, | 775 | err = iser_fast_reg_mr(iser_task, mem_reg, mem, |
776 | ISER_DATA_KEY_VALID, &data_sge); | 776 | ISER_DATA_KEY_VALID, &data_sge); |
777 | if (err) | 777 | if (err) |
778 | goto err_reg; | 778 | goto err_reg; |
@@ -793,7 +793,7 @@ int iser_reg_rdma_mem_fastreg(struct iscsi_iser_task *iser_task, | |||
793 | } | 793 | } |
794 | } | 794 | } |
795 | 795 | ||
796 | err = iser_fast_reg_mr(iser_task, regd_buf, mem, | 796 | err = iser_fast_reg_mr(iser_task, mem_reg, mem, |
797 | ISER_PROT_KEY_VALID, &prot_sge); | 797 | ISER_PROT_KEY_VALID, &prot_sge); |
798 | if (err) | 798 | if (err) |
799 | goto err_reg; | 799 | goto err_reg; |
@@ -807,19 +807,19 @@ int iser_reg_rdma_mem_fastreg(struct iscsi_iser_task *iser_task, | |||
807 | } | 807 | } |
808 | desc->reg_indicators |= ISER_FASTREG_PROTECTED; | 808 | desc->reg_indicators |= ISER_FASTREG_PROTECTED; |
809 | 809 | ||
810 | regd_buf->reg.lkey = sig_sge.lkey; | 810 | mem_reg->lkey = sig_sge.lkey; |
811 | regd_buf->reg.rkey = desc->pi_ctx->sig_mr->rkey; | 811 | mem_reg->rkey = desc->pi_ctx->sig_mr->rkey; |
812 | regd_buf->reg.va = sig_sge.addr; | 812 | mem_reg->va = sig_sge.addr; |
813 | regd_buf->reg.len = sig_sge.length; | 813 | mem_reg->len = sig_sge.length; |
814 | } else { | 814 | } else { |
815 | if (desc) | 815 | if (desc) |
816 | regd_buf->reg.rkey = desc->data_mr->rkey; | 816 | mem_reg->rkey = desc->data_mr->rkey; |
817 | else | 817 | else |
818 | regd_buf->reg.rkey = device->mr->rkey; | 818 | mem_reg->rkey = device->mr->rkey; |
819 | 819 | ||
820 | regd_buf->reg.lkey = data_sge.lkey; | 820 | mem_reg->lkey = data_sge.lkey; |
821 | regd_buf->reg.va = data_sge.addr; | 821 | mem_reg->va = data_sge.addr; |
822 | regd_buf->reg.len = data_sge.length; | 822 | mem_reg->len = data_sge.length; |
823 | } | 823 | } |
824 | 824 | ||
825 | return 0; | 825 | return 0; |
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c index 986b5f4823ea..20eec09dc86a 100644 --- a/drivers/infiniband/ulp/iser/iser_verbs.c +++ b/drivers/infiniband/ulp/iser/iser_verbs.c | |||
@@ -1220,7 +1220,7 @@ static void iser_cq_callback(struct ib_cq *cq, void *cq_context) | |||
1220 | u8 iser_check_task_pi_status(struct iscsi_iser_task *iser_task, | 1220 | u8 iser_check_task_pi_status(struct iscsi_iser_task *iser_task, |
1221 | enum iser_data_dir cmd_dir, sector_t *sector) | 1221 | enum iser_data_dir cmd_dir, sector_t *sector) |
1222 | { | 1222 | { |
1223 | struct iser_mem_reg *reg = &iser_task->rdma_regd[cmd_dir].reg; | 1223 | struct iser_mem_reg *reg = &iser_task->rdma_reg[cmd_dir]; |
1224 | struct fast_reg_descriptor *desc = reg->mem_h; | 1224 | struct fast_reg_descriptor *desc = reg->mem_h; |
1225 | unsigned long sector_size = iser_task->sc->device->sector_size; | 1225 | unsigned long sector_size = iser_task->sc->device->sector_size; |
1226 | struct ib_mr_status mr_status; | 1226 | struct ib_mr_status mr_status; |