Le 29/05/2016 13:17, Vincent Bernat a écrit :
[snip]
> diff --git a/drivers/net/veth.c b/drivers/net/veth.c
> index f37a6e61d4ad..9726c4dbf659 100644
> --- a/drivers/net/veth.c
> +++ b/drivers/net/veth.c
> @@ -432,10 +432,6 @@ static int veth_newlink(struct net *src_net, struct 
> net_device *dev,
>  
>       netif_carrier_off(peer);
>  
> -     err = rtnl_configure_link(peer, ifmp);
> -     if (err < 0)
> -             goto err_configure_peer;
> -
>       /*
>        * register dev last
>        *
> @@ -466,6 +462,10 @@ static int veth_newlink(struct net *src_net, struct 
> net_device *dev,
>  
>       priv = netdev_priv(peer);
>       rcu_assign_pointer(priv->peer, dev);
> +
> +     err = rtnl_configure_link(peer, ifmp);
> +     if (err < 0)
> +             goto err_configure_peer;
You should fix the error path. 'unregister_netdevice(dev)' is missing.

Reply via email to