]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commitb9403edf723fb88e722f4c6136bb09a46365f226
treedfed6d24c5a9a82cb1b82279534745e889b534ad
parente8fa8d334d230dbb617b33e5882e8734aa59e46b
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