summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@vrfy.org>2007-08-15 15:38:28 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2007-10-12 14:51:01 -0700
commit6a8d8abb6e4497ae4132a9b1f0a956ea501f1c46 (patch)
treef1951698261d20dab965e4595d84560f533ab14d
parent7eff2e7a8b65c25920207324e56611150eb1cd9a (diff)
downloadlinux-3.10-6a8d8abb6e4497ae4132a9b1f0a956ea501f1c46.tar.gz
linux-3.10-6a8d8abb6e4497ae4132a9b1f0a956ea501f1c46.tar.bz2
linux-3.10-6a8d8abb6e4497ae4132a9b1f0a956ea501f1c46.zip
Driver core: add CONFIG_UEVENT_HELPER_PATH
The kernel creates a process for every event that is send, even when there is no binary it could execute. We are needlessly creating around 200-300 failing processes during early bootup, until we have the chance to disable it from userspace. This change allows us to disable /sbin/hotplug entirely, if you want to, by setting UEVENT_HELPER_PATH="" in the kernel config. Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/base/Kconfig8
-rw-r--r--lib/kobject_uevent.c2
2 files changed, 9 insertions, 1 deletions
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
index 5d6312e3349..d7da109c24f 100644
--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -1,5 +1,13 @@
menu "Generic Driver Options"
+config UEVENT_HELPER_PATH
+ string "path to uevent helper"
+ depends on HOTPLUG
+ default "/sbin/hotplug"
+ help
+ Path to uevent helper program forked by the kernel for
+ every uevent.
+
config STANDALONE
bool "Select only drivers that don't need compile-time external firmware" if EXPERIMENTAL
default y
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
index 7d8aeb30163..5ccda460262 100644
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
@@ -35,7 +35,7 @@ const char *kobject_actions[] = {
#if defined(CONFIG_HOTPLUG)
u64 uevent_seqnum;
-char uevent_helper[UEVENT_HELPER_PATH_LEN] = "/sbin/hotplug";
+char uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH;
static DEFINE_SPINLOCK(sequence_lock);
#if defined(CONFIG_NET)
static struct sock *uevent_sock;