public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] bonding: Fix sysfs attribute handling
@ 2008-03-21 13:52 Libor Pechacek
  2008-03-23  0:27 ` Andrew Morton
  0 siblings, 1 reply; 4+ messages in thread
From: Libor Pechacek @ 2008-03-21 13:52 UTC (permalink / raw)
  To: fubar; +Cc: bonding-devel, linux-kernel

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@suse.cz>
--
 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);
 	}
 
 #ifdef CONFIG_PROC_FS

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] bonding: Fix sysfs attribute handling
  2008-03-21 13:52 [PATCH] bonding: Fix sysfs attribute handling Libor Pechacek
@ 2008-03-23  0:27 ` Andrew Morton
  2008-03-23  1:12   ` Jay Vosburgh
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2008-03-23  0:27 UTC (permalink / raw)
  To: Libor Pechacek; +Cc: fubar, bonding-devel, linux-kernel, netdev, stable

On Fri, 21 Mar 2008 14:52:55 +0100 Libor Pechacek <lpechacek@suse.cz> 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@suse.cz>
> --
>  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?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] bonding: Fix sysfs attribute handling
  2008-03-23  0:27 ` Andrew Morton
@ 2008-03-23  1:12   ` Jay Vosburgh
  2008-03-23 20:05     ` lpechacek
  0 siblings, 1 reply; 4+ messages in thread
From: Jay Vosburgh @ 2008-03-23  1:12 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Libor Pechacek, bonding-devel, linux-kernel, netdev, stable

Andrew Morton <akpm@linux-foundation.org> wrote:

>On Fri, 21 Mar 2008 14:52:55 +0100 Libor Pechacek <lpechacek@suse.cz> 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@suse.cz>
>> --
>>  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

	-J

---
	-Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] bonding: Fix sysfs attribute handling
  2008-03-23  1:12   ` Jay Vosburgh
@ 2008-03-23 20:05     ` lpechacek
  0 siblings, 0 replies; 4+ messages in thread
From: lpechacek @ 2008-03-23 20:05 UTC (permalink / raw)
  To: Jay Vosburgh
  Cc: Andrew Morton, Libor Pechacek, bonding-devel, linux-kernel,
	netdev, stable

> Andrew Morton <akpm@linux-foundation.org> wrote:
>
>>On Fri, 21 Mar 2008 14:52:55 +0100 Libor Pechacek <lpechacek@suse.cz>
>> 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@suse.cz>
>>> --
>>>  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


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-03-23 20:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-21 13:52 [PATCH] bonding: Fix sysfs attribute handling Libor Pechacek
2008-03-23  0:27 ` Andrew Morton
2008-03-23  1:12   ` Jay Vosburgh
2008-03-23 20:05     ` lpechacek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox