bonding: Do not call free_netdev for already registered device.
authorPavel Emelyanov <xemul@openvz.org>
Sat, 3 May 2008 00:49:37 +0000 (17:49 -0700)
committerJeff Garzik <jgarzik@redhat.com>
Tue, 6 May 2008 16:01:27 +0000 (12:01 -0400)
commit822973ba79fd5a5b711270c2de7196c6b50c6687
treedfed6d24c5a9a82cb1b82279534745e889b534ad
parent9d1045ad68fcccfaf1393cc463ab6357693e8d1d
bonding: Do not call free_netdev for already registered device.

If the call to bond_create_sysfs_entry in bond_create fails, the
proper rollback is to call unregister_netdevice, not free_netdev.
Otherwise - kernel BUG at net/core/dev.c:4057!

Checked with artificial failures injected into bond_create_sysfs_entry.

Pavel's original patch modified by Jay Vosburgh to move code around
for clarity (remove goto-hopping within the unwind block).

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/net/bonding/bond_main.c