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

From: Nicolas Dichtel <[email-masked]>
Date: Mon, 30 May 2016 17:19:13 +0200

Le 30/05/2016 12:11, Vincent Bernat a écrit :
>  ❦ 30 mai 2016 11:23 CEST, Nicolas Dichtel <[email-masked]> :
> 
>>> @@ -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.
> 
> I am sending another patch to fix that. I am quite unsure if I do the
> right thing here.
> 
A less intrusive fix is to call 'rtmsg_ifinfo(RTM_NEWLINK, peer, ~0U,
GFP_KERNEL);' a the end of veth_newlink().