diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2011-12-05 19:12:47 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-12-09 16:23:50 -0800 |
commit | 74099b18b8db0670484e0caeb3425fb29ff3144e (patch) | |
tree | a50f4085ab7e8d04936a886c7a4f6a535a32ed5d /lib/kobject_uevent.c | |
parent | cf6a2eacbcb2593b5b91d0817915c4f0464bb534 (diff) | |
download | lwn-74099b18b8db0670484e0caeb3425fb29ff3144e.tar.gz lwn-74099b18b8db0670484e0caeb3425fb29ff3144e.zip |
driver-core: skip uevent generation when nobody is listening
Most network namespaces unlikely have listeners to uevents, and should
benefit from skipping all the string copies.
Cc: Eric Biederman <ebiederm@xmission.com>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'lib/kobject_uevent.c')
-rw-r--r-- | lib/kobject_uevent.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index ad72a03ce5e9..e66e9b632617 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c @@ -259,6 +259,9 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, struct sk_buff *skb; size_t len; + if (!netlink_has_listeners(uevent_sock, 1)) + continue; + /* allocate message with the maximum possible size */ len = strlen(action_string) + strlen(devpath) + 2; skb = alloc_skb(len + env->buflen, GFP_KERNEL); |