RDMA/nes: Add missing calls to ib_umem_release()
authorJulia Lawall <julia@diku.dk>
Thu, 6 Oct 2011 16:33:24 +0000 (09:33 -0700)
committerRoland Dreier <roland@purestorage.com>
Thu, 6 Oct 2011 16:33:24 +0000 (09:33 -0700)
Add calls to ib_umem_release(), as in the other error-handling code in
nes_reg_user_mr().

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/nes/nes_verbs.c

index 9f2f7d4..394d0e7 100644 (file)
@@ -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);
 }