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

Commit acf02d23 authored by Cornelia Huck's avatar Cornelia Huck Committed by Greg Kroah-Hartman
Browse files

driver core: Use klist_remove() in device_move()



As pointed out by Alan Stern, device_move needs to use klist_remove which waits
until removal is complete.

Signed-off-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 8a82472f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1022,7 +1022,7 @@ int device_move(struct device *dev, struct device *new_parent)
	old_parent = dev->parent;
	dev->parent = new_parent;
	if (old_parent)
		klist_del(&dev->knode_parent);
		klist_remove(&dev->knode_parent);
	klist_add_tail(&dev->knode_parent, &new_parent->klist_children);
	if (!dev->class)
		goto out_put;
@@ -1031,7 +1031,7 @@ int device_move(struct device *dev, struct device *new_parent)
		/* We ignore errors on cleanup since we're hosed anyway... */
		device_move_class_links(dev, new_parent, old_parent);
		if (!kobject_move(&dev->kobj, &old_parent->kobj)) {
			klist_del(&dev->knode_parent);
			klist_remove(&dev->knode_parent);
			if (old_parent)
				klist_add_tail(&dev->knode_parent,
					       &old_parent->klist_children);