The patch titled Driver core: fix locking issues with the devices that are attached to classes has been added to the -mm tree. Its filename is driver-core-fix-locking-issues-with-the-devices-that-are-attached-to-classes.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: Driver core: fix locking issues with the devices that are attached to classes From: Greg KH <gregkh@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/base/core.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff -puN drivers/base/core.c~driver-core-fix-locking-issues-with-the-devices-that-are-attached-to-classes drivers/base/core.c --- a/drivers/base/core.c~driver-core-fix-locking-issues-with-the-devices-that-are-attached-to-classes +++ a/drivers/base/core.c @@ -356,6 +356,13 @@ int device_add(struct device *dev) if (parent) klist_add_tail(&dev->knode_parent, &parent->klist_children); + if (dev->class) { + /* tie the class to the device */ + down(&dev->class->sem); + list_add_tail(&dev->node, &dev->class->devices); + up(&dev->class->sem); + } + /* notify platform of device entry */ if (platform_notify) platform_notify(dev); @@ -456,6 +463,9 @@ void device_del(struct device * dev) sysfs_remove_link(&dev->kobj, "device"); sysfs_remove_link(&dev->parent->kobj, class_name); kfree(class_name); + down(&dev->class->sem); + list_del_init(&dev->node); + up(&dev->class->sem); } device_remove_file(dev, &dev->uevent_attr); @@ -602,11 +612,6 @@ struct device *device_create(struct clas if (retval) goto error; - /* tie the class to the device */ - down(&class->sem); - list_add_tail(&dev->node, &class->devices); - up(&class->sem); - return dev; error: @@ -637,9 +642,7 @@ void device_destroy(struct class *class, } up(&class->sem); - if (dev) { - list_del_init(&dev->node); + if (dev) device_unregister(dev); - } } EXPORT_SYMBOL_GPL(device_destroy); _ Patches currently in -mm which might be from gregkh@xxxxxxx are origin.patch pci-add-pci_cap_id_vndr.patch kevent-add-new-uevent.patch driver-core-fix-locking-issues-with-the-devices-that-are-attached-to-classes.patch usb-get-usb-suspend-to-work-again.patch usb-new-driver-for-cypress-cy7c63xxx-mirco-controllers-fix.patch core-use-list_move.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html