Message ID | 1481167018-559-1-git-send-email-fgao@ikuai8.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Wed, Dec 7, 2016 at 7:16 PM, <fgao@ikuai8.com> wrote: > From: Gao Feng <fgao@ikuai8.com> > > When netdev_upper_dev_unlink failed in ipvlan_link_new, need to > unlink the ipvlan dev with upper dev. > > Signed-off-by: Gao Feng <fgao@ikuai8.com> Acked-by: Mahesh Bandewar <maheshb@google.com> > --- > v2: Rename the label to unlink_netdev, per Mahesh Bandewar > v1: Initial patch > > drivers/net/ipvlan/ipvlan_main.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c > index 0fef178..dfbc4ef 100644 > --- a/drivers/net/ipvlan/ipvlan_main.c > +++ b/drivers/net/ipvlan/ipvlan_main.c > @@ -546,13 +546,15 @@ static int ipvlan_link_new(struct net *src_net, struct net_device *dev, > } > err = ipvlan_set_port_mode(port, mode); > if (err) { > - goto unregister_netdev; > + goto unlink_netdev; > } > > list_add_tail_rcu(&ipvlan->pnode, &port->ipvlans); > netif_stacked_transfer_operstate(phy_dev, dev); > return 0; > > +unlink_netdev: > + netdev_upper_dev_unlink(phy_dev, dev); > unregister_netdev: > unregister_netdevice(dev); > destroy_ipvlan_port: > -- > 1.9.1 > >
From: fgao@ikuai8.com Date: Thu, 8 Dec 2016 11:16:58 +0800 > From: Gao Feng <fgao@ikuai8.com> > > When netdev_upper_dev_unlink failed in ipvlan_link_new, need to > unlink the ipvlan dev with upper dev. > > Signed-off-by: Gao Feng <fgao@ikuai8.com> Applied.
diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c index 0fef178..dfbc4ef 100644 --- a/drivers/net/ipvlan/ipvlan_main.c +++ b/drivers/net/ipvlan/ipvlan_main.c @@ -546,13 +546,15 @@ static int ipvlan_link_new(struct net *src_net, struct net_device *dev, } err = ipvlan_set_port_mode(port, mode); if (err) { - goto unregister_netdev; + goto unlink_netdev; } list_add_tail_rcu(&ipvlan->pnode, &port->ipvlans); netif_stacked_transfer_operstate(phy_dev, dev); return 0; +unlink_netdev: + netdev_upper_dev_unlink(phy_dev, dev); unregister_netdev: unregister_netdevice(dev); destroy_ipvlan_port: