From: Cornelia Huck Suppress uevents for devices if uevent_suppress is set via dev_uevent_filter(). This makes the driver core suppress all device uevents, not just the add event in device_add(). Signed-off-by: Cornelia Huck Cc: Greg K-H Cc: Kay Sievers Cc: Eric Rannaud Cc: Heiko Carstens Signed-off-by: Andrew Morton --- drivers/base/core.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff -puN drivers/base/core.c~driver-core-suppress-uevents-via-filter drivers/base/core.c --- a/drivers/base/core.c~driver-core-suppress-uevents-via-filter +++ a/drivers/base/core.c @@ -134,6 +134,8 @@ static int dev_uevent_filter(struct kset if (ktype == &ktype_device) { struct device *dev = to_dev(kobj); + if (dev->uevent_suppress) + return 0; if (dev->bus) return 1; if (dev->class) @@ -689,8 +691,7 @@ int device_add(struct device *dev) goto PMError; if ((error = bus_add_device(dev))) goto BusError; - if (!dev->uevent_suppress) - kobject_uevent(&dev->kobj, KOBJ_ADD); + kobject_uevent(&dev->kobj, KOBJ_ADD); bus_attach_device(dev); if (parent) klist_add_tail(&dev->knode_parent, &parent->klist_children); _