From: Taehee Yoo <ap420...@gmail.com> Date: Sun, 21 Jun 2020 13:46:25 +0000
> When an interface is being deleted, "/proc/net/dev_snmp6/<interface name>" > is deleted. > The function for this is addrconf_ifdown() in the addrconf_notify() and > it is called by notification, which is NETDEV_UNREGISTER. > But, if NETDEV_CHANGEMTU is triggered after NETDEV_UNREGISTER, > this proc file will be created again. > This recreated proc file will be deleted by netdev_wati_allrefs(). > Before netdev_wait_allrefs() is called, creating a new HSR interface > routine can be executed and It tries to create a proc file but it will > find an un-deleted proc file. > At this point, it warns about it. > > To avoid this situation, it can use ->dellink() instead of > ->ndo_uninit() to release resources because ->dellink() is called > before NETDEV_UNREGISTER. > So, a proc file will not be recreated. > > Test commands ... > Splat looks like: ... > Reported-by: syzbot+1d51c8b74efa4c44a...@syzkaller.appspotmail.com > Fixes: e0a4b99773d3 ("hsr: use upper/lower device infrastructure") > Signed-off-by: Taehee Yoo <ap420...@gmail.com> Applied and queued up for -stable, thank you.