On Tue, May 10, 2011 at 03:36:59PM +0200, Eric Dumazet wrote: > Le mardi 10 mai 2011 à 15:14 +0200, Frank Blaschka a écrit : > > > I just checked todays net-next tree, problem is still there. > > I don't have an x86 box, but I was able to reproduce the problem > > with the dummy device (on s/390) > > > > # modprobe bonding > > # modprobe dummy > > # ifconfig bond0 up > > # ifenslave bond0 dummy0 > > # rmmod dummy > > Here is the patch to fix this problem > Hi Eric, your patch did the trick. With the patch applied I could not reproduce the problem anyhow I use real or dummy device. Thx for your help! > Thanks again for your help. > > [PATCH net-2.6] net: dev_close() should check IFF_UP > > Commit 443457242beb (factorize sync-rcu call in > unregister_netdevice_many) mistakenly removed one test from dev_close() > > Following actions trigger a BUG : > > modprobe bonding > modprobe dummy > ifconfig bond0 up > ifenslave bond0 dummy0 > rmmod dummy > > dev_close() must not close a non IFF_UP device. > > With help from Frank Blaschka and Einar EL Lueck > > Reported-by: Frank Blaschka <blaschka@xxxxxxxxxxxxxxxxxx> > Reported-by: Einar EL Lueck <ELELUECK@xxxxxxxxxx> > Signed-off-by: Eric Dumazet <eric.dumazet@xxxxxxxxx> > CC: Octavian Purdila <opurdila@xxxxxxxxxxx> > --- > net/core/dev.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/net/core/dev.c b/net/core/dev.c > index 856b6ee..9200944 100644 > --- a/net/core/dev.c > +++ b/net/core/dev.c > @@ -1284,11 +1284,13 @@ static int dev_close_many(struct list_head *head) > */ > int dev_close(struct net_device *dev) > { > - LIST_HEAD(single); > + if (dev->flags & IFF_UP) { > + LIST_HEAD(single); > > - list_add(&dev->unreg_list, &single); > - dev_close_many(&single); > - list_del(&single); > + list_add(&dev->unreg_list, &single); > + dev_close_many(&single); > + list_del(&single); > + } > return 0; > } > EXPORT_SYMBOL(dev_close); > > -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html