> @@ -237,9 +235,11 @@ static void ipoib_cm_rx_event_handler(struct ib_event
> *event, void *ctx)
> return;
>
> spin_lock_irqsave(&priv->lock, flags);
> - list_move(&p->list, &priv->cm.rx_flush_list);
> - p->state = IPOIB_CM_RX_FLUSH;
> - ipoib_cm_start_rx_drain(priv);
> + if (p->state == IPOIB_CM_RX_LIVE) {
> + list_move(&p->list, &priv->cm.rx_flush_list);
> + p->state = IPOIB_CM_RX_FLUSH;
> + ipoib_cm_start_rx_drain(priv);
> + }
> spin_unlock_irqrestore(&priv->lock, flags);
Can you explain this change a little more? It seems quite likely that
we would get last WQE reached events for other states, such as
IPOIB_CM_RX_ERROR coming from ipoib_cm_dev_stop(), and I don't see how
things work if we make this change.
- R.
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general