From: Sven Eckelmann [mailto:sven@narfation.org] Sent: Wednesday, April 26, 2017 3:17 PM On Mittwoch, 26. April 2017 14:44:24 CEST Gao Feng wrote: [...]
I get it now, thanks.
[...]
BTW, I think although the batadv_softif_create is legacy, we should fix it when it still exists :)
I didn't meant that we should not fix it. I just said that it looks to me
like the fix
should look different to ensure that it actually fixes the sysfs and rtnl
link
implementation for the batadv interface creation. Right now the ndo_uninit (when it would be set by batadv) is called in the netdev core functions
when an
error happens during the registration. This is not the case for the
destructor.
Thanks your answer. I assumed the destructor is not for this case before..
Your patch would not change it. It therefore looks like you simply have to
move
the current destructor (without the free_netdev) to ndo_uninit and change
the
destructor to free_netdev.
Yes, that patch didn't touch badman-adv. Because current badman-adv doesn't support newlink now. It would be good that cleanup the resource in ndo_uninit routine.
Best Regards Feng
The batadv ops doesn't have a newlink function. It will therefore use the register_netdevice code path which calls free_netdev on failures. The
extra
cleanup you've added in https://www.mail-archive.com/netdev@vger.kernel.org/msg165253.html can therefore not work for batman-adv. Actually, it is not touching anything batman-adv related. The suggestion to change the register_netdevice -> free_netdev part in rtnl_newlink was new in the reply to the batadv
discussion.
It is therefore still an open discussion how it is correctly fixed.
Kind regards, Sven