Skip to contentSkip to conversation

driver core: restore event order for device_add()

PATCH New Greg KH 1 participant 1 message May 23, 2005 Driver core

lore
Share & tools
lore

Greg KH

author
#0 lore raw

PATCH 1/1 driver core: restore event order for device_add()

Linus, please apply this to your 2.6.12-rc4 git tree, the SCSI, HAL, and udev people need to restore the original order of hotplug events (as 2.6.11 and before kernels provide) until they work out the details of how to do this better.

----------

From: Kay Sievers <[email protected]>
As a result of the split of the kobject-registration and the corresponding hotplug event, the order of events for device_add() has changed. This restores the old order, cause it confused some userspace applications.

---
 drivers/base/core.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/base/core.c +2 -2
@@ -245,6 +245,7 @@
 
 	if ((error = kobject_add(&dev->kobj)))
 		goto Error;
+	kobject_hotplug(&dev->kobj, KOBJ_ADD);
 	if ((error = device_pm_add(dev)))
 		goto PMError;
 	if ((error = bus_add_device(dev)))
@@ -257,14 +258,13 @@
 	/* notify platform of device entry */
 	if (platform_notify)
 		platform_notify(dev);
-
-	kobject_hotplug(&dev->kobj, KOBJ_ADD);
  Done:
 	put_device(dev);
 	return error;
  BusError:
 	device_pm_remove(dev);
  PMError:
+	kobject_hotplug(&dev->kobj, KOBJ_REMOVE);
 	kobject_del(&dev->kobj);
  Error:
 	if (parent)