aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Dreier <rolandd@cisco.com>2009-02-22 23:04:34 -0500
committerRoland Dreier <rolandd@cisco.com>2009-02-22 23:04:34 -0500
commit71c4512201575c7cc008b364e2e2c75cc7085c26 (patch)
tree0a8d76992a500aa82e8943c3dd4743b3d3e3d6e0
parentf3b8436ad9a8ad36b3c9fa1fe030c7f38e5d3d0b (diff)
IB/ipath: Fix memory leak in init_shadow_tids() error path
If the second vmalloc() fails, the wrong pointer is pased to vfree(), so the first vmalloc() ends up getting leaked. This was spotted by the Coverity checker (CID 2709). Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r--drivers/infiniband/hw/ipath/ipath_init_chip.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_init_chip.c b/drivers/infiniband/hw/ipath/ipath_init_chip.c
index 64aeefbd2a5d..077879c0bdb5 100644
--- a/drivers/infiniband/hw/ipath/ipath_init_chip.c
+++ b/drivers/infiniband/hw/ipath/ipath_init_chip.c
@@ -455,7 +455,7 @@ static void init_shadow_tids(struct ipath_devdata *dd)
455 if (!addrs) { 455 if (!addrs) {
456 ipath_dev_err(dd, "failed to allocate shadow dma handle " 456 ipath_dev_err(dd, "failed to allocate shadow dma handle "
457 "array, no expected sends!\n"); 457 "array, no expected sends!\n");
458 vfree(dd->ipath_pageshadow); 458 vfree(pages);
459 dd->ipath_pageshadow = NULL; 459 dd->ipath_pageshadow = NULL;
460 return; 460 return;
461 } 461 }