git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
nfsd4: replace callback thread by asynchronous rpc
[safe/jmp/linux-2.6]
/
lib
/
kobject_uevent.c
diff --git
a/lib/kobject_uevent.c
b/lib/kobject_uevent.c
index
e68e743
..
920a3ca
100644
(file)
--- a/
lib/kobject_uevent.c
+++ b/
lib/kobject_uevent.c
@@
-234,6
+234,9
@@
int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
NETLINK_CB(skb).dst_group = 1;
retval = netlink_broadcast(uevent_sock, skb, 0, 1,
GFP_KERNEL);
NETLINK_CB(skb).dst_group = 1;
retval = netlink_broadcast(uevent_sock, skb, 0, 1,
GFP_KERNEL);
+ /* ENOBUFS should be handled in userspace */
+ if (retval == -ENOBUFS)
+ retval = 0;
} else
retval = -ENOMEM;
}
} else
retval = -ENOMEM;
}
@@
-255,7
+258,7
@@
int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
goto exit;
retval = call_usermodehelper(argv[0], argv,
goto exit;
retval = call_usermodehelper(argv[0], argv,
- env->envp, UMH_
NO_WAIT
);
+ env->envp, UMH_
WAIT_EXEC
);
}
exit:
}
exit:
@@
-325,7
+328,7
@@
static int __init kobject_uevent_init(void)
"kobject_uevent: unable to create netlink socket!\n");
return -ENODEV;
}
"kobject_uevent: unable to create netlink socket!\n");
return -ENODEV;
}
-
+ netlink_set_nonroot(NETLINK_KOBJECT_UEVENT, NL_NONROOT_RECV);
return 0;
}
return 0;
}