Re: [PATCH] bonding: Fix sysfs attribute handling

From: lpechacek
Date: Sun Mar 23 2008 - 16:05:31 EST


> Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
>
>>On Fri, 21 Mar 2008 14:52:55 +0100 Libor Pechacek <lpechacek@xxxxxxx>
>> wrote:
>>
>>> bonding: Fix sysfs attribute handling
>>>
>>> For bonding interfaces any attempt to read the sysfs directory contents
>>> after
>>> module removal results in an oops. The fix is to release sysfs
>>> attributes
>>> for the interfaces upon module unload.
>>>
>>> Signed-off-by: Libor Pechacek <lpechacek@xxxxxxx>
>>> --
>>> drivers/net/bonding/bond_main.c | 3 +--
>>> 1 files changed, 1 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/net/bonding/bond_main.c
>>> b/drivers/net/bonding/bond_main.c
>>> index 0942d82..33767d4 100644
>>> --- a/drivers/net/bonding/bond_main.c
>>> +++ b/drivers/net/bonding/bond_main.c
>>> @@ -4528,8 +4528,7 @@ static void bond_free_all(void)
>>> netif_tx_unlock_bh(bond_dev);
>>> /* Release the bonded slaves */
>>> bond_release_all(bond_dev);
>>> - bond_deinit(bond_dev);
>>> - unregister_netdevice(bond_dev);
>>> + bond_destroy(bond);
>>> }
>>
>>Is this also needed in 2.6.24.x?
>
> Yes (I haven't tested it personally, but the affected code is
> the same). I was going to forward this to stable when it was accepted
> upstream. The oops is fairly straightforward to create:
>
> # modprobe bonding
> # cd /sys/class/net/bond0/bonding
> # rmmod bonding
> # ls

Yes, exactly.

I tested the patch with the latest Linus' tree (GIT commit
49a5ba46c5d1e34bcb07634157b29d7414ce13bd), but I first found the bug in
2.6.16.

Libor

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/