> The action in bonding to a detach of slave is to unregister the master (see 
 > patch 10).
 > This can't be done from the context of unregister_netdevice itself (it is 
 > protected by rtnl_lock).

I'm confused.  Your patch has:

 > +            ipoib_slave_detach(cpriv->dev);
 >              unregister_netdev(cpriv->dev);

And ipoib_slave_detach() is:

 > +static inline void ipoib_slave_detach(struct net_device *dev)
 > +{
 > +    rtnl_lock();
 > +    netdev_slave_detach(dev);
 > +    rtnl_unlock();
 > +}

so you are calling netdev_slave_detach() with the rtnl lock held.
Why can't you make the same call from the start of unregister_netdevice()?

Anyway, if the rtnl lock is a problem, can you just add the call to
netdev_slave_detach() to unregister_netdev() before it takes the rtnl lock?

 - R.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to