diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-03-26 14:17:04 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-03-26 14:17:04 -0400 |
commit | 0c93ea4064a209cdc36de8a9a3003d43d08f46f7 (patch) | |
tree | ff19952407c523a1349ef56c05993416dd28437e /lib/kobject_uevent.c | |
parent | bc2fd381d8f9dbeb181f82286cdca1567e3d0def (diff) | |
parent | e6e66b02e11563abdb7f69dcb7a2efbd8d577e77 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (61 commits)
Dynamic debug: fix pr_fmt() build error
Dynamic debug: allow simple quoting of words
dynamic debug: update docs
dynamic debug: combine dprintk and dynamic printk
sysfs: fix some bin_vm_ops errors
kobject: don't block for each kobject_uevent
sysfs: only allow one scheduled removal callback per kobj
Driver core: Fix device_move() vs. dpm list ordering, v2
Driver core: some cleanup on drivers/base/sys.c
Driver core: implement uevent suppress in kobject
vcs: hook sysfs devices into object lifetime instead of "binding"
driver core: fix passing platform_data
driver core: move platform_data into platform_device
sysfs: don't block indefinitely for unmapped files.
driver core: move knode_bus into private structure
driver core: move knode_driver into private structure
driver core: move klist_children into private structure
driver core: create a private portion of struct device
driver core: remove polling for driver_probe_done(v5)
sysfs: reference sysfs_dirent from sysfs inodes
...
Fixed conflicts in drivers/sh/maple/maple.c manually
Diffstat (limited to 'lib/kobject_uevent.c')
-rw-r--r-- | lib/kobject_uevent.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index 318328ddbd1c..e68e743bd861 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c | |||
@@ -118,6 +118,13 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, | |||
118 | kset = top_kobj->kset; | 118 | kset = top_kobj->kset; |
119 | uevent_ops = kset->uevent_ops; | 119 | uevent_ops = kset->uevent_ops; |
120 | 120 | ||
121 | /* skip the event, if uevent_suppress is set*/ | ||
122 | if (kobj->uevent_suppress) { | ||
123 | pr_debug("kobject: '%s' (%p): %s: uevent_suppress " | ||
124 | "caused the event to drop!\n", | ||
125 | kobject_name(kobj), kobj, __func__); | ||
126 | return 0; | ||
127 | } | ||
121 | /* skip the event, if the filter returns zero. */ | 128 | /* skip the event, if the filter returns zero. */ |
122 | if (uevent_ops && uevent_ops->filter) | 129 | if (uevent_ops && uevent_ops->filter) |
123 | if (!uevent_ops->filter(kset, kobj)) { | 130 | if (!uevent_ops->filter(kset, kobj)) { |
@@ -248,7 +255,7 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, | |||
248 | goto exit; | 255 | goto exit; |
249 | 256 | ||
250 | retval = call_usermodehelper(argv[0], argv, | 257 | retval = call_usermodehelper(argv[0], argv, |
251 | env->envp, UMH_WAIT_EXEC); | 258 | env->envp, UMH_NO_WAIT); |
252 | } | 259 | } |
253 | 260 | ||
254 | exit: | 261 | exit: |