> @@ -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

Reply via email to