OSDN Git Service

bnxt_re: Clean cq for kernel consumers only
authorDevesh Sharma <devesh.sharma@broadcom.com>
Tue, 26 Feb 2019 03:18:04 +0000 (22:18 -0500)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 4 Mar 2019 14:51:14 +0000 (10:51 -0400)
Kernel space provider driver should clean the CQs belonging to kernel
space consumers only. The current implementation is doing reverse of it.

Fixing the same by avoiding the call to __clean_cq on a kernel qp during
destroy.

Fixes: c50866e2853a ("bnxt_re: fix the regression due to changes in alloc_pbl")
Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/bnxt_re/ib_verbs.c

index 2409291..071b2fc 100644 (file)
@@ -803,7 +803,7 @@ int bnxt_re_destroy_qp(struct ib_qp *ib_qp)
                return rc;
        }
 
-       if (!rdma_is_kernel_res(&qp->ib_qp.res)) {
+       if (rdma_is_kernel_res(&qp->ib_qp.res)) {
                flags = bnxt_re_lock_cqs(qp);
                bnxt_qplib_clean_qp(&qp->qplib_qp);
                bnxt_re_unlock_cqs(qp, flags);