From cornelia.huck@de.ibm.com Wed Nov 22 08:49:08 2006 Date: Wed, 22 Nov 2006 17:49:39 +0100 From: Cornelia Huck Cc: Greg K-H , Alan Stern , Andrew Morton Subject: driver core: Use klist_remove() in device_move() Message-ID: <20061122174939.64a10e31@gondolin.boeblingen.de.ibm.com> From: Cornelia Huck As pointed out by Alan Stern, device_move needs to use klist_remove which waits until removal is complete. Signed-off-by: Cornelia Huck Cc: Alan Stern Signed-off-by: Greg Kroah-Hartman --- drivers/base/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- gregkh-2.6.orig/drivers/base/core.c +++ gregkh-2.6/drivers/base/core.c @@ -1022,7 +1022,7 @@ int device_move(struct device *dev, stru 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, stru /* 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);