Revert "bonding: remove sysfs before removing devices"
authornikolay@redhat.com <nikolay@redhat.com>
Sat, 6 Apr 2013 00:54:37 +0000 (00:54 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 8 Apr 2013 20:45:09 +0000 (16:45 -0400)
This reverts commit 4de79c737b200492195ebc54a887075327e1ec1d.

This patch introduces a new bug which causes access to freed memory.
In bond_uninit: list_del(&bond->bond_list);
bond_list is linked in bond_net's dev_list which is freed by
unregister_pernet_subsys.

Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c

index 171b10f167a501a75fe8c7639c6d8dba0953f4b3..a51241b2e62186b03b4958faa509c4cefc14d052 100644 (file)
@@ -4902,8 +4902,8 @@ static void __exit bonding_exit(void)
 
        bond_destroy_debugfs();
 
-       unregister_pernet_subsys(&bond_net_ops);
        rtnl_link_unregister(&bond_link_ops);
+       unregister_pernet_subsys(&bond_net_ops);
 
 #ifdef CONFIG_NET_POLL_CONTROLLER
        /*