diff options
Diffstat (limited to 'drivers/infiniband/ulp/iser/iser_memory.c')
| -rw-r--r-- | drivers/infiniband/ulp/iser/iser_memory.c | 56 |
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, | |||
| 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; |
