From b8648d0191b8708663d056ef2d395baee976c48b Mon Sep 17 00:00:00 2001 From: Jiri Pirko Date: Mon, 24 May 2010 07:02:25 +0000 Subject: [PATCH] --- yaml --- r: 198596 b: refs/heads/master c: f16d3d57486cd079b29ae7a6c3b31c90e69c9c44 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/macvlan.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index eb0eaf09905b..043944396166 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 556ae19110f2de5ace4733e0c19e5fa01fad08b3 +refs/heads/master: f16d3d57486cd079b29ae7a6c3b31c90e69c9c44 diff --git a/trunk/drivers/net/macvlan.c b/trunk/drivers/net/macvlan.c index 4e238afab4a3..87e8d4cb4057 100644 --- a/trunk/drivers/net/macvlan.c +++ b/trunk/drivers/net/macvlan.c @@ -634,11 +634,18 @@ int macvlan_common_newlink(struct net *src_net, struct net_device *dev, err = register_netdevice(dev); if (err < 0) - return err; + goto destroy_port; list_add_tail(&vlan->list, &port->vlans); netif_stacked_transfer_operstate(lowerdev, dev); + return 0; + +destroy_port: + if (list_empty(&port->vlans)) + macvlan_port_destroy(lowerdev); + + return err; } EXPORT_SYMBOL_GPL(macvlan_common_newlink);