Fix endless loop in ipoib_poll().

ib_req_notify_cq may return negative value which will indicate a
failure. In the case of uncorrectable error, we will end up in an
endless loop. Fix that, by going to another loop with poll_more
only if there is anything left to poll.

Submitted by:	slavash@
MFC after:	3 days
Sponsored by:	Mellanox Technologies
This commit is contained in:
Hans Petter Selasky 2019-05-08 10:42:05 +00:00
parent 8b1b42c150
commit cb678cb911
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=347278

View File

@ -409,7 +409,7 @@ ipoib_poll(struct ipoib_dev_priv *priv)
spin_unlock(&priv->drain_lock);
if (ib_req_notify_cq(priv->recv_cq,
IB_CQ_NEXT_COMP | IB_CQ_REPORT_MISSED_EVENTS))
IB_CQ_NEXT_COMP | IB_CQ_REPORT_MISSED_EVENTS) > 0)
goto poll_more;
}