Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3eb215de authored by Dmitry Torokhov's avatar Dmitry Torokhov Committed by Linus Torvalds
Browse files

Driver core: fix SYSF_DEPRECATED breakage for nested classdevs



We should only reparent to a class former class devices that
form the base of class hierarchy. Nested devices should still
grow from their real parents.

Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
Tested-by: default avatarAndrey Borzenkov <arvidjaar@mail.ru>
Tested-by: default avatarAnssi Hannula <anssi.hannula@gmail.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 85923b12
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -586,9 +586,13 @@ void device_initialize(struct device *dev)
static struct kobject * get_device_parent(struct device *dev,
					  struct device *parent)
{
	/* Set the parent to the class, not the parent device */
	/* this keeps sysfs from having a symlink to make old udevs happy */
	if (dev->class)
	/*
	 * Set the parent to the class, not the parent device
	 * for topmost devices in class hierarchy.
	 * This keeps sysfs from having a symlink to make old
	 * udevs happy
	 */
	if (dev->class && (!parent || parent->class != dev->class))
		return &dev->class->subsys.kobj;
	else if (parent)
		return &parent->kobj;