On Wed, Dec 7, 2016 at 7:16 PM,  <f...@ikuai8.com> wrote:
> From: Gao Feng <f...@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 <f...@ikuai8.com>
Acked-by: Mahesh Bandewar <mahe...@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
>
>

Reply via email to