aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw
diff options
context:
space:
mode:
authorHoang-Nam Nguyen <hnguyen at de.ibm.com>2008-01-17 09:03:55 -0500
committerRoland Dreier <rolandd@cisco.com>2008-01-25 17:15:43 -0500
commit0c86e280fe8a08d4ae30b77e46a1e7da28d756c9 (patch)
tree422504ced2506b3b84a13bb2924f8256c6d3ad90 /drivers/infiniband/hw
parent6410627eb9804e541b83d220c8e914ce64475b31 (diff)
IB/ehca: Remove CQ-QP-link before destroying QP in error path of create_qp()
Signed-off-by: Hoang-Nam Nguyen <hnguyen@de.ibm.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw')
-rw-r--r--drivers/infiniband/hw/ehca/ehca_qp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c
index f116eb7c0b11..26c6a945459f 100644
--- a/drivers/infiniband/hw/ehca/ehca_qp.c
+++ b/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -769,12 +769,15 @@ static struct ehca_qp *internal_create_qp(
769 if (ib_copy_to_udata(udata, &resp, sizeof resp)) { 769 if (ib_copy_to_udata(udata, &resp, sizeof resp)) {
770 ehca_err(pd->device, "Copy to udata failed"); 770 ehca_err(pd->device, "Copy to udata failed");
771 ret = -EINVAL; 771 ret = -EINVAL;
772 goto create_qp_exit4; 772 goto create_qp_exit5;
773 } 773 }
774 } 774 }
775 775
776 return my_qp; 776 return my_qp;
777 777
778create_qp_exit5:
779 ehca_cq_unassign_qp(my_qp->send_cq, my_qp->real_qp_num);
780
778create_qp_exit4: 781create_qp_exit4:
779 if (HAS_RQ(my_qp)) 782 if (HAS_RQ(my_qp))
780 ipz_queue_dtor(my_pd, &my_qp->ipz_rqueue); 783 ipz_queue_dtor(my_pd, &my_qp->ipz_rqueue);