linked list corruption/use after free on bonding unload.
Subsystems (2)
Just hit this while doing a load/unload test of various modules. No bonding configuration had been set up, just the module loaded.
bonding: bond0: released all slaves
------------[ cut here ]------------ WARNING: at lib/list_debug.c:93 __list_del_entry+0xa1/0xd0() Hardware name: GA-MA78GM-S2H list_del corruption. prev->next should be ffff88005b420be8, but was 6b6b6b6b6b6b6b6b Pid: 3886605, comm: modprobe Not tainted 3.9.0-rc6+ #19 Call Trace: [<ffffffff810450a5>] warn_slowpath_common+0x75/0xa0 [<ffffffff8104511c>] warn_slowpath_fmt+0x4c/0x50 [<ffffffff816b8502>] ? printk+0x67/0x69 [<ffffffff81353df1>] __list_del_entry+0xa1/0xd0 [<ffffffff81353e2d>] list_del+0xd/0x30 [<ffffffffa14c444b>] bond_uninit+0x6b/0xd0 [bonding] [<ffffffff81581560>] rollback_registered_many+0x150/0x210 [<ffffffff81581749>] unregister_netdevice_many+0x19/0x60 [<ffffffff8159427e>] __rtnl_link_unregister+0x6e/0xb0 [<ffffffff815942e3>] rtnl_link_unregister+0x23/0x30 [<ffffffffa14ce96b>] bonding_exit+0x2d/0x6c2 [bonding] [<ffffffff810c5bc5>] sys_delete_module+0x165/0x2f0 [<ffffffff810b6ac5>] ? trace_hardirqs_on_caller+0x115/0x1a0 [<ffffffff8134b18e>] ? trace_hardirqs_on_thunk+0x3a/0x3f [<ffffffff816cdcc2>] system_call_fastpath+0x16/0x1b ---[ end trace ffa4539b4be32cfa ]---
David Miller
maintainerFrom: Dave Jones <[email protected]>
Date: Tue, 9 Apr 2013 14:50:02 -0400
Quoted 2 lines
Just hit this while doing a load/unload test of various modules. No bonding configuration had been set up, just the module loaded.
What tree?
We recently had to revert a bonding "fix" and implement it differently. So Linus's tree could cause this oops on bonding unload but 'net' won't.
Quoted 7 lines · David Miller
From: Dave Jones <[email protected]>
Date: Tue, 9 Apr 2013 14:50:02 -0400Quoted 2 lines
Just hit this while doing a load/unload test of various modules. No bonding configuration had been set up, just the module loaded.
What tree?
v3.9-rc6-13-gf011a08
Quoted 3 lines
We recently had to revert a bonding "fix" and implement it differently. So Linus's tree could cause this oops on bonding unload but 'net' won't.
ah, sounds promising. I'll retest when your next push lands.
thanks,
Dave