diff options
author | Hoang-Nam Nguyen <hnguyen at de.ibm.com> | 2008-01-17 09:03:55 -0500 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2008-01-25 17:15:43 -0500 |
commit | 0c86e280fe8a08d4ae30b77e46a1e7da28d756c9 (patch) | |
tree | 422504ced2506b3b84a13bb2924f8256c6d3ad90 /drivers/infiniband | |
parent | 6410627eb9804e541b83d220c8e914ce64475b31 (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')
-rw-r--r-- | drivers/infiniband/hw/ehca/ehca_qp.c | 5 |
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 | ||
778 | create_qp_exit5: | ||
779 | ehca_cq_unassign_qp(my_qp->send_cq, my_qp->real_qp_num); | ||
780 | |||
778 | create_qp_exit4: | 781 | create_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); |