> 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.
_______________________________________________
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