Subject: linked list corruption/use after free on bonding unload.

From: Dave Jones <[email-masked]>
Date: Tue, 9 Apr 2013 14:50:02 -0400

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 ]---