lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 10 May 2011 10:54:32 +0200 From: Eric Dumazet <eric.dumazet@...il.com> To: Einar EL Lueck <ELELUECK@...ibm.com> Cc: davem@...emloft.net, netdev@...r.kernel.org, Frank Blaschka <Frank.Blaschka@...ibm.com> Subject: Re: Fw: oops during unregister_netdevice interface enslaved to bond - regression Le mardi 10 mai 2011 à 10:17 +0200, Einar EL Lueck a écrit : > Hi Dave, > > Einar EL Lueck/Germany/IBM wrote on 04/29/2011 04:45:45 PM: > > > From: > > > > Einar EL Lueck/Germany/IBM > > > > To: > > > > opurdila@...acom.com, netdev@...r.kernel.org, linux- > > s390@...r.kernel.org, davem@...emloft.net > > > > Cc: > > > > Frank Blaschka/Germany/IBM@...DE > > > > Date: > > > > 04/29/2011 04:45 PM > > > > Subject: > > > > Re: oops during unregister_netdevice interface enslaved to bond - > regression > > > > Hi Octavian, > > > > On 04/15/2011 10:53 AM, Frank Blaschka wrote: > > > Hi Octavian, > > > > > > your commit 443457242beb6716b43db4d62fe148eab5515505 introduced > > this regression. > > > I have reviewed the net device unregister code but did not > > understand it very well. > > > I have seen the problem only in combination with bonding. Can you > > give me some help > > > how to go on with this problem. I can reproduced it very easy on > asingle CPU > > > machine. > > > > > > > In this case rollback_registered_many iterates over the list of devs > > that initially has just one device in it. In a loop it calls > > call_netdevice_notifiers(NETDEV_UNREGISTER, dev) which triggers the > > bonding driver to call dev_close_many for the same device. That call > > to dev_close_many leads to the addition of the same device to the > > list over which rollback_registered_many is iterating. Consequently, > > netdev_unregister_kobject(dev) is called twice for the same device. > > Frank captured the result in his mail. > > > > Calls to the *_many functions introduced by Octavian may never interleave > because > the traversed lists modify each other. This was the root cause for the > symptom that Frank discovered. Octavian is not a valid mail recipient > anymore and did not react from any new mail address. I suggest to revert > the commit. > Hello Einar I am currently working on this stuff [adding even more batching and probably bugs as well ], so instead of revert I'll try to find a way to fix this. If you already have a script to reproduce the bug on virtual devices on x86 (not on s390 machines I dont have ;) ), I'll appreciate having a copy of it. Thanks for the reminder. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists