Subject: Re: [PATCH net] rtnl: don't send rtnl msg for unregistered iface

From: Jiri Pirko <[email-masked]>
Date: Mon, 11 May 2015 19:53:55 +0200

Mon, May 11, 2015 at 06:15:00PM CEST, [email-masked] wrote:
>Le 11/05/2015 18:04, Nicolas Dichtel a écrit :
>>Le 11/05/2015 17:37, Jiri Pirko a écrit :
>>[snip]
>>>
>>>I don't think this is the correct way to fix this.
>>>
>>>How ifindex can be 0 here? Ifindex is set in register_netdevice and
>>>looking at bond_create, I don't see any call to __bond_opt_set before
>>>that. But since it apparently is, the ordering should be changed so
>>>register_netdevice is called first.
>I also don't see why we would prevent to register a bonding interface directly
>with the right mode.
>
>>bond_newlink => bond_changelink => __bond_opt_set
>>and then back to bond_newlink => register_netdevice

I see it now. Why not to do register first, changelink later?
Or, change __bond_opt_set to call call_netdevice_notifiers only in case
dev->reg_state == NETREG_REGISTERED? Looking at the other places this
check happens, looks like a little helper like "netdev_check_registered"
might be convenient.