From: Michael S. Tsirkin Date: Sun, 16 Jul 2006 11:42:26 +0000 (+0300) Subject: IB/sdp: Fix error handling for case when mr allocation fails X-Git-Tag: v4.1.12-92~264^2~5^2~404 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c98ae640114d7fd3dab7efc54c03a87c5e181f30;p=users%2Fjedix%2Flinux-maple.git IB/sdp: Fix error handling for case when mr allocation fails --- diff --git a/drivers/infiniband/ulp/sdp/sdp_cma.c b/drivers/infiniband/ulp/sdp/sdp_cma.c index 156900f0918a4..b98dae062fa42 100644 --- a/drivers/infiniband/ulp/sdp/sdp_cma.c +++ b/drivers/infiniband/ulp/sdp/sdp_cma.c @@ -102,6 +102,7 @@ int sdp_init_qp(struct sock *sk, struct rdma_cm_id *id) }; struct ib_device *device = id->device; struct ib_cq *cq; + struct ib_pd *mr; struct ib_pd *pd; int rc; @@ -132,13 +133,14 @@ int sdp_init_qp(struct sock *sk, struct rdma_cm_id *id) goto err_pd; } - sdp_sk(sk)->mr = ib_get_dma_mr(pd, IB_ACCESS_LOCAL_WRITE); - if (IS_ERR(sdp_sk(sk)->mr)) { - rc = PTR_ERR(sdp_sk(sk)->mr); + mr = ib_get_dma_mr(pd, IB_ACCESS_LOCAL_WRITE); + if (IS_ERR(mr)) { + rc = PTR_ERR(mr); sdp_warn(sk, "Unable to get dma MR: %d.\n", rc); goto err_mr; } + sdp_sk(sk)->mr = mr; INIT_WORK(&sdp_sk(sk)->work, sdp_work, sdp_sk(sk)); cq = ib_create_cq(device, sdp_completion_handler, sdp_cq_event_handler,