mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-18 15:09:53 +00:00
IB/qib: Clear WAIT_SEND flags when setting QP to error state
If these flags are set when the QP is transitioned to the error state, it will wait until the flags are cleared, which may never happen if the error transition is due to a link going down. Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
6676b3f746
commit
16028f2777
@ -468,6 +468,10 @@ int qib_error_qp(struct qib_qp *qp, enum ib_wc_status err)
|
|||||||
qp->s_flags &= ~(QIB_S_TIMER | QIB_S_WAIT_RNR);
|
qp->s_flags &= ~(QIB_S_TIMER | QIB_S_WAIT_RNR);
|
||||||
del_timer(&qp->s_timer);
|
del_timer(&qp->s_timer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (qp->s_flags & QIB_S_ANY_WAIT_SEND)
|
||||||
|
qp->s_flags &= ~QIB_S_ANY_WAIT_SEND;
|
||||||
|
|
||||||
spin_lock(&dev->pending_lock);
|
spin_lock(&dev->pending_lock);
|
||||||
if (!list_empty(&qp->iowait) && !(qp->s_flags & QIB_S_BUSY)) {
|
if (!list_empty(&qp->iowait) && !(qp->s_flags & QIB_S_BUSY)) {
|
||||||
qp->s_flags &= ~QIB_S_ANY_WAIT_IO;
|
qp->s_flags &= ~QIB_S_ANY_WAIT_IO;
|
||||||
|
Loading…
Reference in New Issue
Block a user