Sean Hefty wrote:
 void ipoib_mcast_join_task(void *dev_ptr)
@@ -553,7 +539,8 @@ void ipoib_mcast_join_task(void *dev_ptr
                spin_unlock_irq(&priv->lock);
        }
- if (!test_bit(IPOIB_MCAST_FLAG_ATTACHED, &priv->broadcast->flags)) {
+       if (!test_bit(IPOIB_MCAST_FLAG_ATTACHED, &priv->broadcast->flags) &&
+           !test_bit(IPOIB_MCAST_FLAG_BUSY, &priv->broadcast->flags)) {
                ipoib_mcast_join(dev, priv->broadcast, 0);
                return;
        }

The change above needs to be:

        if (!test_bit(IPOIB_MCAST_FLAG_ATTACHED, &priv->broadcast->flags)) {
                if (!test_bit(IPOIB_MCAST_FLAG_BUSY, &priv->broadcast->flags))
                        ipoib_mcast_join(dev, priv->broadcast, 0);
                return;
        }

Or additional join requests will start before we've finished joining the broadcast group.

- Sean
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to