IB/ipath: Fix hang on module unload
Handle the case where posting a send is requested when the link is down. This fixes <https://bugs.openfabrics.org/show_bug.cgi?id=1117>. Signed-off-by: Yannick Cote <yannick.cote@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
9403589675
commit
e441d63428
|
@ -340,9 +340,16 @@ static int ipath_post_one_send(struct ipath_qp *qp, struct ib_send_wr *wr)
|
|||
int acc;
|
||||
int ret;
|
||||
unsigned long flags;
|
||||
struct ipath_devdata *dd = to_idev(qp->ibqp.device)->dd;
|
||||
|
||||
spin_lock_irqsave(&qp->s_lock, flags);
|
||||
|
||||
if (qp->ibqp.qp_type != IB_QPT_SMI &&
|
||||
!(dd->ipath_flags & IPATH_LINKACTIVE)) {
|
||||
ret = -ENETDOWN;
|
||||
goto bail;
|
||||
}
|
||||
|
||||
/* Check that state is OK to post send. */
|
||||
if (unlikely(!(ib_ipath_state_ops[qp->state] & IPATH_POST_SEND_OK)))
|
||||
goto bail_inval;
|
||||
|
|
Loading…
Reference in New Issue