On Mon, 24 Jun 2019 at 03:07, David Miller <da...@davemloft.net> wrote: >
Hi David, Thank you for the review! > From: Taehee Yoo <ap420...@gmail.com> > Date: Thu, 20 Jun 2019 20:51:08 +0900 > > > __vxlan_dev_create() destroys FDB using specific pointer which indicates > > a fdb when error occurs. > > But that pointer should not be used when register_netdevice() fails because > > register_netdevice() internally destroys fdb when error occurs. > > > > In order to avoid un-registered dev's notification, fdb destroying routine > > checks dev's register status before notification. > > Simply pass do_notify as false in this failure code path of > __vxlan_dev_create(), > thank you. Failure path of __vxlan_dev_create() can't handle do_notify in that case because if register_netdevice() fails it internally calls ->ndo_uninit() which is vxlan_uninit(). vxlan_uninit() internally calls vxlan_fdb_delete_default() and it callls vxlan_fdb_destroy(). do_notify of vxlan_fdb_destroy() in vxlan_fdb_delete_default() is always true. So, failure path of __vxlan_dev_create() doesn't have any opportunity to handle do_notify. Thank you!