mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-21 19:58:34 -05:00
RDMA/cxgb4: Notify rdma stack for IB_EVENT_QP_LAST_WQE_REACHED event
This patch sends IB_EVENT_QP_LAST_WQE_REACHED event on a QP that is in error state and associated with an SRQ. This behaviour is incorporated in flush_qp() which is called when QP transitions to error state. Supports SRQ drain functionality added by commit844bc12e6d("IB/core: add support for draining Shared receive queues") Fixes:844bc12e6d("IB/core: add support for draining Shared receive queues") Signed-off-by: Anumula Murali Mohan Reddy <anumula@chelsio.com> Signed-off-by: Potnuri Bharat Teja <bharat@chelsio.com> Link: https://patch.msgid.link/20250107095053.81007-1-anumula@chelsio.com Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
committed by
Leon Romanovsky
parent
9264cd6aa8
commit
42e6ddda4c
@@ -1599,6 +1599,7 @@ static void __flush_qp(struct c4iw_qp *qhp, struct c4iw_cq *rchp,
|
||||
int count;
|
||||
int rq_flushed = 0, sq_flushed;
|
||||
unsigned long flag;
|
||||
struct ib_event ev;
|
||||
|
||||
pr_debug("qhp %p rchp %p schp %p\n", qhp, rchp, schp);
|
||||
|
||||
@@ -1607,6 +1608,13 @@ static void __flush_qp(struct c4iw_qp *qhp, struct c4iw_cq *rchp,
|
||||
if (schp != rchp)
|
||||
spin_lock(&schp->lock);
|
||||
spin_lock(&qhp->lock);
|
||||
if (qhp->srq && qhp->attr.state == C4IW_QP_STATE_ERROR &&
|
||||
qhp->ibqp.event_handler) {
|
||||
ev.device = qhp->ibqp.device;
|
||||
ev.element.qp = &qhp->ibqp;
|
||||
ev.event = IB_EVENT_QP_LAST_WQE_REACHED;
|
||||
qhp->ibqp.event_handler(&ev, qhp->ibqp.qp_context);
|
||||
}
|
||||
|
||||
if (qhp->wq.flushed) {
|
||||
spin_unlock(&qhp->lock);
|
||||
|
||||
Reference in New Issue
Block a user