RDMA/amso1100: Fix memory leak in c2_reg_phys_mr()
authorRoland Dreier <rolandd@cisco.com>
Thu, 28 Sep 2006 17:44:07 +0000 (10:44 -0700)
committerRoland Dreier <rolandd@cisco.com>
Thu, 28 Sep 2006 17:44:07 +0000 (10:44 -0700)
If the allocation of mr fails, then c2_reg_phys_mr() leaks the
page_list array it allocated earlier.

This was Coverity CID #1413.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/amso1100/c2_provider.c

index 622d6f1f920dd433b6cfe9df27799b5078d3b475..da98d9f714295062d7e46c5ccd9e03b6e9a93bb2 100644 (file)
@@ -390,8 +390,10 @@ static struct ib_mr *c2_reg_phys_mr(struct ib_pd *ib_pd,
        }
 
        mr = kmalloc(sizeof(*mr), GFP_KERNEL);
-       if (!mr)
+       if (!mr) {
+               vfree(page_list);
                return ERR_PTR(-ENOMEM);
+       }
 
        mr->pd = to_c2pd(ib_pd);
        pr_debug("%s - page shift %d, pbl_depth %d, total_len %u, "