aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/mthca
diff options
context:
space:
mode:
authorJack Morgenstein <jackm@mellanox.co.il>2006-01-12 18:35:15 -0500
committerRoland Dreier <rolandd@cisco.com>2006-01-12 18:35:15 -0500
commit17e2e819517d75f2f3407e59c5f7f6f0ef305d14 (patch)
treebe0be0430b4650a01fa51d0f00a59c95d41384ca /drivers/infiniband/hw/mthca
parent59f174faffd5dfee709fa0ead320cc6daf827e93 (diff)
IB/mthca: Fix memory leaks in error handling
Fix memory leaks in mthca_create_qp() and mthca_create_srq() error handling. Signed-off-by: Jack Morgenstein <jackm@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/mthca')
-rw-r--r--drivers/infiniband/hw/mthca/mthca_provider.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_provider.c b/drivers/infiniband/hw/mthca/mthca_provider.c
index db35690c91de..484a7e6b7f8c 100644
--- a/drivers/infiniband/hw/mthca/mthca_provider.c
+++ b/drivers/infiniband/hw/mthca/mthca_provider.c
@@ -445,8 +445,10 @@ static struct ib_srq *mthca_create_srq(struct ib_pd *pd,
445 if (pd->uobject) { 445 if (pd->uobject) {
446 context = to_mucontext(pd->uobject->context); 446 context = to_mucontext(pd->uobject->context);
447 447
448 if (ib_copy_from_udata(&ucmd, udata, sizeof ucmd)) 448 if (ib_copy_from_udata(&ucmd, udata, sizeof ucmd)) {
449 return ERR_PTR(-EFAULT); 449 err = -EFAULT;
450 goto err_free;
451 }
450 452
451 err = mthca_map_user_db(to_mdev(pd->device), &context->uar, 453 err = mthca_map_user_db(to_mdev(pd->device), &context->uar,
452 context->db_tab, ucmd.db_index, 454 context->db_tab, ucmd.db_index,
@@ -522,8 +524,10 @@ static struct ib_qp *mthca_create_qp(struct ib_pd *pd,
522 if (pd->uobject) { 524 if (pd->uobject) {
523 context = to_mucontext(pd->uobject->context); 525 context = to_mucontext(pd->uobject->context);
524 526
525 if (ib_copy_from_udata(&ucmd, udata, sizeof ucmd)) 527 if (ib_copy_from_udata(&ucmd, udata, sizeof ucmd)) {
528 kfree(qp);
526 return ERR_PTR(-EFAULT); 529 return ERR_PTR(-EFAULT);
530 }
527 531
528 err = mthca_map_user_db(to_mdev(pd->device), &context->uar, 532 err = mthca_map_user_db(to_mdev(pd->device), &context->uar,
529 context->db_tab, 533 context->db_tab,