aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Walsh <brian@walsh.ws>2006-08-15 01:43:19 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2006-09-26 00:08:39 -0400
commit370226449ced358e52d198081120826ef52c166b (patch)
treee436ccd6b5dea748bd432f84b71b0558b65511f0
parent8a6914ab7c95d471c23b42268aa8e1f55b3d2fdb (diff)
drivers/base: Platform notify needs to occur before drivers attach to the device
The platform_notify call for Arm and PPC architectures needs to be called before the driver attaches to the device. The problem only presents itself when hotplugging certain devices while the driver is already loaded. Signed-off-by: Brian Walsh <brian@walsh.ws> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/base/core.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c
index bc9f35c81691..b224bb43ff63 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -424,6 +424,10 @@ int device_add(struct device *dev)
424 if ((error = kobject_add(&dev->kobj))) 424 if ((error = kobject_add(&dev->kobj)))
425 goto Error; 425 goto Error;
426 426
427 /* notify platform of device entry */
428 if (platform_notify)
429 platform_notify(dev);
430
427 dev->uevent_attr.attr.name = "uevent"; 431 dev->uevent_attr.attr.name = "uevent";
428 dev->uevent_attr.attr.mode = S_IWUSR; 432 dev->uevent_attr.attr.mode = S_IWUSR;
429 if (dev->driver) 433 if (dev->driver)
@@ -488,10 +492,6 @@ int device_add(struct device *dev)
488 class_intf->add_dev(dev, class_intf); 492 class_intf->add_dev(dev, class_intf);
489 up(&dev->class->sem); 493 up(&dev->class->sem);
490 } 494 }
491
492 /* notify platform of device entry */
493 if (platform_notify)
494 platform_notify(dev);
495 Done: 495 Done:
496 kfree(class_name); 496 kfree(class_name);
497 put_device(dev); 497 put_device(dev);