RDMA/bnxt_re: Fix qp async event reporting
authorDevesh Sharma <devesh.sharma@broadcom.com>
Mon, 8 Oct 2018 10:28:01 +0000 (03:28 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 1 Dec 2019 08:13:25 +0000 (09:13 +0100)
[ Upstream commit 4c01f2e3a906a0d2d798be5751c331cf501bc129 ]

Reports affiliated async event on the qp-async event channel instead of
global event channel.

Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/bnxt_re/main.c

index bf811b23bc95334dd6e4d7314791bbf89ea31940..7d00b6a53ed8c4b3a35c8bcc2050e09f6d42f49f 100644 (file)
@@ -782,12 +782,17 @@ static void bnxt_re_dispatch_event(struct ib_device *ibdev, struct ib_qp *qp,
        struct ib_event ib_event;
 
        ib_event.device = ibdev;
-       if (qp)
+       if (qp) {
                ib_event.element.qp = qp;
-       else
+               ib_event.event = event;
+               if (qp->event_handler)
+                       qp->event_handler(&ib_event, qp->qp_context);
+
+       } else {
                ib_event.element.port_num = port_num;
-       ib_event.event = event;
-       ib_dispatch_event(&ib_event);
+               ib_event.event = event;
+               ib_dispatch_event(&ib_event);
+       }
 }
 
 #define HWRM_QUEUE_PRI2COS_QCFG_INPUT_FLAGS_IVLAN      0x02