From: Julia Lawall <[email protected]>

Add calls to ib_umem_release, as in the other error-handling code in the
same function.

Signed-off-by: Julia Lawall <[email protected]>

---
 drivers/infiniband/hw/nes/nes_verbs.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/nes/nes_verbs.c 
b/drivers/infiniband/hw/nes/nes_verbs.c
index 9f2f7d4..394d0e7 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.c
+++ b/drivers/infiniband/hw/nes/nes_verbs.c
@@ -2338,8 +2338,10 @@ static struct ib_mr *nes_reg_user_mr(struct ib_pd *pd, 
u64 start, u64 length,
 
        skip_pages = ((u32)region->offset) >> 12;
 
-       if (ib_copy_from_udata(&req, udata, sizeof(req)))
+       if (ib_copy_from_udata(&req, udata, sizeof(req))) {
+               ib_umem_release(region);
                return ERR_PTR(-EFAULT);
+       }
        nes_debug(NES_DBG_MR, "Memory Registration type = %08X.\n", 
req.reg_type);
 
        switch (req.reg_type) {
@@ -2631,6 +2633,7 @@ static struct ib_mr *nes_reg_user_mr(struct ib_pd *pd, 
u64 start, u64 length,
                        return &nesmr->ibmr;
        }
 
+       ib_umem_release(region);
        return ERR_PTR(-ENOSYS);
 }
 

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to