Jay Vosburgh wrote:
> Moni Shoua <[EMAIL PROTECTED]> wrote:
> 
>> When bonding enslaves non Ethernet devices it takes pointers to functions 
>> in the module that owns the slaves. In this case it becomes unsafe
>> to keep the bonding master registered after last slave was unenslaved 
>> because we don't know if the pointers are still valid.  Destroying the bond 
>> when slave_cnt is zero
>> ensures that these functions be used anymore.
> 
>       Would it not be simpler to run the bonding master through
> ether_setup() again when the final slave is released (to reset all of
> the pointers to their "ethernet" values)?  I'm presuming here the
> pointers of questionable validity are the ones set in the
> bond_setup_by_slave() copied from the slave_dev->hard_header, et al.
> 
>       Having the bonding master disappear (but only sometimes) after
> the last slave is removed is a semantic change I'd rather not introduce
> if it's not necessary.

Thanks for the comments.

Having the master disappear is one way I could think of to solve the problem of 
leaving
the bonding module with pointers to illegal addresses.
The other way is to increase the usage count, with try_module_get(), of the 
module which owns of the slave.
To do that I  have to restore the field  owner in structure net_device (it was 
removed in 2.6).
Do you prefer the second approach? I wasn't sure about that.


-
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