aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@novell.com>2006-10-07 15:54:55 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-02-07 13:37:14 -0500
commitb7a3e813fb84624166f034e25234f98de5846bfc (patch)
tree5936d2755e6f4fcdbf3a34c743a7840cdc72b9a2
parentf9f852df2faf76a2667949ddb4947d4b8f99f02f (diff)
Driver core: allow to delay the uevent at device creation time
For the block subsystem, we want to delay all uevents until the disk has been scanned and allpartitons are already created before the first event is sent out. Signed-off-by: Kay Sievers <kay.sievers@novell.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/base/core.c3
-rw-r--r--include/linux/device.h3
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 34ac18778d8a..e13614241c9e 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -589,7 +589,8 @@ int device_add(struct device *dev)
589 goto PMError; 589 goto PMError;
590 if ((error = bus_add_device(dev))) 590 if ((error = bus_add_device(dev)))
591 goto BusError; 591 goto BusError;
592 kobject_uevent(&dev->kobj, KOBJ_ADD); 592 if (!dev->uevent_suppress)
593 kobject_uevent(&dev->kobj, KOBJ_ADD);
593 if ((error = bus_attach_device(dev))) 594 if ((error = bus_attach_device(dev)))
594 goto AttachError; 595 goto AttachError;
595 if (parent) 596 if (parent)
diff --git a/include/linux/device.h b/include/linux/device.h
index e1e164f81eea..5ca1cdba563a 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -399,9 +399,10 @@ struct device {
399 399
400 /* class_device migration path */ 400 /* class_device migration path */
401 struct list_head node; 401 struct list_head node;
402 struct class *class; /* optional*/ 402 struct class *class;
403 dev_t devt; /* dev_t, creates the sysfs "dev" */ 403 dev_t devt; /* dev_t, creates the sysfs "dev" */
404 struct attribute_group **groups; /* optional groups */ 404 struct attribute_group **groups; /* optional groups */
405 int uevent_suppress;
405 406
406 void (*release)(struct device * dev); 407 void (*release)(struct device * dev);
407}; 408};