kobject: send KOBJ_REMOVE uevent when the object is removed from sysfs
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 24 May 2020 15:30:41 +0000 (17:30 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 May 2020 12:49:22 +0000 (14:49 +0200)
commit0e5596c54aa2fbfd22842096d3ebb6753b2a220a
tree91fb0195638dcd59033694199989f4a4126411d7
parentf7d8f3f092d001f8d91552d2697643e727694942
kobject: send KOBJ_REMOVE uevent when the object is removed from sysfs

It is possible for a KOBJ_REMOVE uevent to be sent to userspace way
after the files are actually gone from sysfs, due to how reference
counting for kobjects work.  This should not be a problem, but it would
be good to properly send the information when things are going away, not
at some later point in time in the future.

Before this move, if a kobject's parent was torn down before the child,
when the call to kobject_uevent() happened, the parent walk to try to
reconstruct the full path of the kobject could be a total mess and cause
crashes.  It's not good to try to tear down a kobject tree from top
down, but let's at least try to not to crash if a user does so.

Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://lore.kernel.org/r/20200524153041.2361-2-gregkh@linuxfoundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
lib/kobject.c