All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jay Vosburgh <fubar@us.ibm.com>
To: netdev@vger.kernel.org
Cc: Jeff Garzik <jgarzik@pobox.com>,
	Pavel Emelyanov <xemul@openvz.org>,
	Jay Vosburgh <fubar@us.ibm.com>
Subject: [PATCH 1/4] bonding: Do not call free_netdev for already registered device.
Date: Fri,  2 May 2008 17:49:37 -0700	[thread overview]
Message-ID: <12097757822222-git-send-email-fubar@us.ibm.com> (raw)
In-Reply-To: <12097757801056-git-send-email-fubar@us.ibm.com>

From: Pavel Emelyanov <xemul@openvz.org>

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>
---
 drivers/net/bonding/bond_main.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 6e91b4b..7ffd819 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -4939,7 +4939,9 @@ int bond_create(char *name, struct bond_params *params, struct bonding **newbond
 	if (res < 0) {
 		rtnl_lock();
 		down_write(&bonding_rwsem);
-		goto out_bond;
+		bond_deinit(bond_dev);
+		unregister_netdevice(bond_dev);
+		goto out_rtnl;
 	}
 
 	return 0;
-- 
1.5.2.4


  reply	other threads:[~2008-05-03  0:49 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-03  0:49 [PATCH 0/4] bonding: bug fixes for 2.6.26 Jay Vosburgh
2008-05-03  0:49 ` Jay Vosburgh [this message]
2008-05-03  0:49   ` [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds Jay Vosburgh
2008-05-03  0:49     ` [PATCH 3/4] bonding: Deadlock between bonding_store_bonds and bond_destroy_sysfs Jay Vosburgh
2008-05-03  0:49       ` [PATCH 4/4] bonding: fix enslavement error unwinds Jay Vosburgh
2008-05-03  0:52         ` David Miller
2008-05-03  1:06           ` [PATCH REPOST " Jay Vosburgh
2008-05-03  1:07             ` David Miller
2008-05-03  0:51       ` [PATCH 3/4] bonding: Deadlock between bonding_store_bonds and bond_destroy_sysfs David Miller
2008-05-03  0:51     ` [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds David Miller
2008-05-03  0:51   ` [PATCH 1/4] bonding: Do not call free_netdev for already registered device David Miller
2008-05-06 16:17   ` Jeff Garzik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=12097757822222-git-send-email-fubar@us.ibm.com \
    --to=fubar@us.ibm.com \
    --cc=jgarzik@pobox.com \
    --cc=netdev@vger.kernel.org \
    --cc=xemul@openvz.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.