On Thu 2019-02-28 22:57:33, Rafał Miłecki wrote: > From: Rafał Miłecki <rafal@xxxxxxxxxx> > > Renaming a netdev-trigger-tracked interface was resulting in an > unbalanced dev_hold(). > > Example: > > iw phy phy0 interface add foo type __ap > > echo netdev > trigger > > echo foo > device_name > > ip link set foo name bar > > iw dev bar del > [ 237.355366] unregister_netdevice: waiting for bar to become free. Usage count = 1 > [ 247.435362] unregister_netdevice: waiting for bar to become free. Usage count = 1 > [ 257.545366] unregister_netdevice: waiting for bar to become free. Usage count = 1 > > Above problem was caused by trigger checking a dev->name which obviously > changes after renaming an interface. It meant missing all further events > including the NETDEV_UNREGISTER which is required for calling dev_put(). > > This change fixes that by: > 1) Comparing device struct *address* for notification-filtering purposes > 2) Dropping unneeded NETDEV_CHANGENAME code (no behavior change) > > Fixes: 06f502f57d0d ("leds: trigger: Introduce a NETDEV trigger") > Signed-off-by: Rafał Miłecki <rafal@xxxxxxxxxx> Acked-by: Pavel Machek <pavel@xxxxxx> -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Attachment:
signature.asc
Description: Digital signature