aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/ulp/iser/iser_memory.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/ulp/iser/iser_memory.c')
-rw-r--r--drivers/infiniband/ulp/iser/iser_memory.c56
1 files changed, 28 insertions, 28 deletions
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,
414void iser_unreg_mem_fmr(struct iscsi_iser_task *iser_task, 414void 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,
432void iser_unreg_mem_fastreg(struct iscsi_iser_task *iser_task, 432void 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 &regd_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
654static int iser_fast_reg_mr(struct iscsi_iser_task *iser_task, 654static 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;