[openib-general] Re: ipoib_mcast_send.patch
Roland Dreier
rdreier at cisco.com
Thu Feb 2 17:42:18 PST 2006
I started looking at IPoIB patches again. In ipoib_mcast_send.patch,
we have:
> --- linux-2.6.15.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2006-01-23 21:24:10.000000000 +0200
> +++ linux-2.6.15/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2006-01-23 21:25:19.000000000 +0200
> @@ -600,6 +600,10 @@ int ipoib_mcast_start_thread(struct net_
> queue_work(ipoib_workqueue, &priv->mcast_task);
> mutex_unlock(&mcast_mutex);
>
> + spin_lock_irq(&priv->lock);
> + set_bit(IPOIB_MCAST_STARTED, &priv->flags);
> + spin_unlock_irq(&priv->lock);
This seems to leave a window where we set the IPOIB_MCAST_STARTED flag
but the multicast work hasn't run yet. Then it seems we're still
susceptible to the issue you described here:
> Further, there's an additional issue that I saw in testing:
> ipoib_mcast_send may get called when priv->broadcast is NULL
> (e.g. if the device was downed and then upped internally because
> of a port event).
> If this happends and the sendonly join request gets completed before
> priv->broadcast is set, we get an oops
- R.
More information about the general
mailing list