Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ib_srpt: Remove ib_get_dma_mr calls

The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.

Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>

authored by

Jason Gunthorpe and committed by
Doug Ledford
5a783956 e6bf5f48

+4 -12
+4 -11
drivers/infiniband/ulp/srpt/ib_srpt.c
··· 783 783 784 784 list.addr = ioctx->ioctx.dma; 785 785 list.length = srp_max_req_size; 786 - list.lkey = sdev->mr->lkey; 786 + list.lkey = sdev->pd->local_dma_lkey; 787 787 788 788 wr.next = NULL; 789 789 wr.sg_list = &list; ··· 818 818 819 819 list.addr = ioctx->ioctx.dma; 820 820 list.length = len; 821 - list.lkey = sdev->mr->lkey; 821 + list.lkey = sdev->pd->local_dma_lkey; 822 822 823 823 wr.next = NULL; 824 824 wr.wr_id = encode_wr_id(SRPT_SEND, ioctx->ioctx.index); ··· 1206 1206 1207 1207 while (rsize > 0 && tsize > 0) { 1208 1208 sge->addr = dma_addr; 1209 - sge->lkey = ch->sport->sdev->mr->lkey; 1209 + sge->lkey = ch->sport->sdev->pd->local_dma_lkey; 1210 1210 1211 1211 if (rsize >= dma_len) { 1212 1212 sge->length = ··· 3211 3211 if (IS_ERR(sdev->pd)) 3212 3212 goto free_dev; 3213 3213 3214 - sdev->mr = ib_get_dma_mr(sdev->pd, IB_ACCESS_LOCAL_WRITE); 3215 - if (IS_ERR(sdev->mr)) 3216 - goto err_pd; 3217 - 3218 3214 sdev->srq_size = min(srpt_srq_size, sdev->dev_attr.max_srq_wr); 3219 3215 3220 3216 srq_attr.event_handler = srpt_srq_event; ··· 3222 3226 3223 3227 sdev->srq = ib_create_srq(sdev->pd, &srq_attr); 3224 3228 if (IS_ERR(sdev->srq)) 3225 - goto err_mr; 3229 + goto err_pd; 3226 3230 3227 3231 pr_debug("%s: create SRQ #wr= %d max_allow=%d dev= %s\n", 3228 3232 __func__, sdev->srq_size, sdev->dev_attr.max_srq_wr, ··· 3307 3311 ib_destroy_cm_id(sdev->cm_id); 3308 3312 err_srq: 3309 3313 ib_destroy_srq(sdev->srq); 3310 - err_mr: 3311 - ib_dereg_mr(sdev->mr); 3312 3314 err_pd: 3313 3315 ib_dealloc_pd(sdev->pd); 3314 3316 free_dev: ··· 3351 3357 srpt_release_sdev(sdev); 3352 3358 3353 3359 ib_destroy_srq(sdev->srq); 3354 - ib_dereg_mr(sdev->mr); 3355 3360 ib_dealloc_pd(sdev->pd); 3356 3361 3357 3362 srpt_free_ioctx_ring((struct srpt_ioctx **)sdev->ioctx_ring, sdev,
-1
drivers/infiniband/ulp/srpt/ib_srpt.h
··· 393 393 struct srpt_device { 394 394 struct ib_device *device; 395 395 struct ib_pd *pd; 396 - struct ib_mr *mr; 397 396 struct ib_srq *srq; 398 397 struct ib_cm_id *cm_id; 399 398 struct ib_device_attr dev_attr;