Subject: Re: [PATCH] veth: delay peer link configuration after interfaces are tied

From: Nicolas Dichtel <[email-masked]>
Date: Mon, 30 May 2016 11:23:35 +0200

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.