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.

Reply via email to