Subject: Re: BUG: bonding module can only be loaded once

From: Jay Vosburgh <[email-masked]>
Date: Tue, 09 Jun 2009 09:14:42 -0700

Patrick McHardy <[email-masked]> wrote:

>Stephen Hemminger wrote:
>>> --- a/drivers/net/bonding/bond_main.c
>>> +++ b/drivers/net/bonding/bond_main.c
>>> @@ -5203,7 +5203,7 @@ static int __init bonding_init(void)
>>>   	res = bond_create_sysfs();
>>>  	if (res)
>>> -		goto err;
>>> +		pr_info("Loading bonding module without sysfs interface\n");
>>>   	register_netdevice_notifier(&bond_netdev_notifier);
>>>  	register_inetaddr_notifier(&bond_inetaddr_notifier);
>>
>> That only makes it limp along, and there still are warnings.
>> The point is that who ever added the WARN() in proc and sysfs, effectively
>> broke a bonding usage model.
>
>It did already dump the stack before that change, didn't it?
>
>In any case, this is not the first time this has been broken and the
>fundamental reason is in my opinion that the bonding interface is
>broken to begin with. The module aliasing thing is complete crap
>and should have been phased out long ago. At this point its probably
>not worth anymore to migrate people to the sysfs interface though,
>the best thing would be to add an rtnl_link interface and phase out
>both.

	The "load bonding multiple times" stuff is only there now for
backwards compatibility with old distro initscripts / sysconfig packages
that don't configure bonding through sysfs (a sysfs API was added to
bonding three or four years ago).

	All of the current distro releases I'm aware of use sysfs to
configure bonding, and have done so for at least a year or two.  I
haven't done an exhaustive survey, but it seems unlikely that users are
running a current up to date kernel with a two or three year old
initscripts / sysconfig package.  Anybody have information to the
contrary?

	If nobody has any heartburn at dropping support for multiple
bonding instances on old distros, I'm as happy as anybody to remove all
of the multiple load logic from bonding.  There's been plenty of time
for transitioning from "multiple load" to sysfs.

	-J

---
	-Jay Vosburgh, IBM Linux Technology Center, [email-masked]