17 Apr, 2009
2 commits
-
Users can read sysfs files, there is no reason they should not be
allowed to listen to uevents. This lets xorg and other userspace
programs properly get these messages without having to be root.Signed-off-by: Kay Sievers
Signed-off-by: Greg Kroah-Hartman -
This reverts commit f520360d93cdc37de5d972dac4bf3bdef6a7f6a7.
Tetsuo Handa, running a kernel with CONFIG_DEBUG_PAGEALLOC=y and
CONFIG_UEVENT_HELPER_PATH=/sbin/hotplug, has been hitting RCU detected
CPU stalls: it's been spinning in the loop where do_execve() counts up
the args (but why wasn't fixup_exception working? dunno).The recent change, switching kobject_uevent_env() from UMH_WAIT_EXEC
to UMH_NO_WAIT, is broken: the exec uses args on the local stack here,
and an env which is kfreed as soon as call_usermodehelper() returns.
It very much needs to wait for the exec to be done.An alternative would be to keep the UMH_NO_WAIT, and complicate the code
to allocate and free these resources correctly? but no, as GregKH
pointed out when making the commit, CONFIG_UEVENT_HELPER_PATH="" is a
much better optimization - though some distros are still saying
/sbin/hotplug in their .config, yet with no such binary in their initrd
or their root.Reported-by: Tetsuo Handa
Signed-off-by: Hugh Dickins
Acked-by: Greg Kroah-Hartman
Acked-by: Arjan van de Ven
Acked-by: Will Newton
Signed-off-by: Linus Torvalds
27 Mar, 2009
1 commit
-
Conflicts:
drivers/net/wimax/i2400m/usb-notif.c
25 Mar, 2009
2 commits
-
Right now, the kobject_uevent code blocks for each uevent that's being
generated, due to using (for hystoric reasons) UHM_WAIT_EXEC as flag to
call_usermode_helper(). Specifically, the effect is that each uevent
that is being sent causes the code to wake up keventd, then block until
keventd has processed the work. Needless to say, this happens many times
during the system boot.This patches changes that to UHN_NO_WAIT (brilliant name for a constant
btw) so that we only schedule the work to fire the uevent message, but
do not wait for keventd to process the work.This removes one of the bottlenecks during boot; each one of them is
only a small effect, but the sum of them does add up.[Note, distros that need this are broken, they should be setting
CONFIG_UEVENT_HELPER_PATH to "", that way this code path will never be
excuted at all -- gregkh]Signed-off-by: Arjan van de Ven
Signed-off-by: Greg Kroah-Hartman -
This patch implements uevent suppress in kobject and removes it
from struct device, based on the following ideas:1,Uevent sending should be one attribute of kobject, so suppressing it
in kobject layer is more natural than in device layer. By this way,
we can do it for other objects embedded with kobject.2,It may save several bytes for each instance of struct device.(On my
omap3(32bit ARM) based box, can save 8bytes per device object)This patch also introduces dev_set|get_uevent_suppress() helpers to
set and query uevent_suppress attribute in case to help kobject
as private part of struct device in future.[This version is against the latest driver-core patch set of Greg,please
ignore the last version.]Signed-off-by: Ming Lei
Signed-off-by: Greg Kroah-Hartman
06 Feb, 2009
1 commit
-
Currently, netlink_broadcast() reports errors to the caller if no
messages at all were delivered:1) If, at least, one message has been delivered correctly, returns 0.
2) Otherwise, if no messages at all were delivered due to skb_clone()
failure, return -ENOBUFS.
3) Otherwise, if there are no listeners, return -ESRCH.With this patch, the caller knows if the delivery of any of the
messages to the listeners have failed:1) If it fails to deliver any message (for whatever reason), return
-ENOBUFS.
2) Otherwise, if all messages were delivered OK, returns 0.
3) Otherwise, if no listeners, return -ESRCH.In the current ctnetlink code and in Netfilter in general, we can add
reliable logging and connection tracking event delivery by dropping the
packets whose events were not successfully delivered over Netlink. Of
course, this option would be settable via /proc as this approach reduces
performance (in terms of filtered connections per seconds by a stateful
firewall) but providing reliable logging and event delivery (for
conntrackd) in return.This patch also changes some clients of netlink_broadcast() that
may report ENOBUFS errors via printk. This error handling is not
of any help. Instead, the userspace daemons that are listening to
those netlink messages should resync themselves with the kernel-side
if they hit ENOBUFS.BTW, netlink_broadcast() clients include those that call
cn_netlink_send(), nlmsg_multicast() and genlmsg_multicast() since they
internally call netlink_broadcast() and return its error value.Signed-off-by: Pablo Neira Ayuso
Signed-off-by: David S. Miller
07 Jan, 2009
2 commits
-
We need to return the result of uevent sending by netlink
to caller, when uevent_helper is disabled and CONFIG_NET
is defined.Signed-off-by: Ming Lei
Cc: Kay Sievers
Signed-off-by: Greg Kroah-Hartman -
kobject_uevent_env() uses envp_ext[] as verbatim format string which
can cause problems ranging from unexpectedly mangled string to oops if
a string in envp_ext[] contains substring which can be interpreted as
format. Fix it.Signed-off-by: Tejun Heo
Cc: Kay Sievers
Signed-off-by: Greg Kroah-Hartman
27 Jul, 2008
1 commit
-
Use WARN() instead of a printk+WARN_ON() pair; this way the message becomes
part of the warning section for better reporting/collection. In addition, one
of the if() clauses collapes into the WARN() entirely now.Signed-off-by: Arjan van de Ven
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
22 Jul, 2008
1 commit
-
kobject_uevent_env() drops the return value of call_usermodehelper().
It will make upper caller, such as dm_send_uevents(), to lose error
information.BTW, Previously kobject_uevent_env() transmitted return of
call_usermodehelper() to callers, but
commit 5f123fbd80f4f788554636f02bf73e40f914e0d6
"[PATCH] merge kobject_uevent and kobject_hotplug" removed it.Signed-off-by: Wang Chen
Cc: Kay Sievers
Signed-off-by: Greg Kroah-Hartman
30 Apr, 2008
1 commit
-
__FUNCTION__ is gcc specific, use __func__
Signed-off-by: Harvey Harrison
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
04 Apr, 2008
2 commits
-
This does not look good, but there is no other choice. The compilation
without CONFIG_NET is broken and can not be fixed with ease.After that there is no need for the following commits:
1567ca7eec7664b8be3b07755ac59dc1b1ec76cb
3edf8fa5ccf10688a9280b5cbca8ed3947c42866
2d38f9a4f8d2ebdc799f03eecf82345825495711Revert them.
Signed-off-by: Denis V. Lunev
Signed-off-by: David S. Miller
31 Mar, 2008
1 commit
-
Mark Lord wrote:
>
> On boot, syslog is flooded with "uevent: unsupported action-string;" messages.
..
> Mar 28 14:43:29 shrimp kernel: tty ptyqd: uevent: unsupported
> action-string; this will be ignored in a future kernel version
> Mar 28 14:43:29 shrimp kernel: tty ptyqe: uevent: unsupported
> action-string; this will be ignored in a future kernel version
> Mar 28 14:43:29 shrimp kernel: tty ptyqf: uevent: unsupported
> action-string; this will be ignored in a future kernel version
> Mar 28 14:43:29 shrimp kernel: tty ptyr0: uevent: unsupported
> action-string; this will be ignored in a future kernel version
..These messages are a regression compared with 2.6.24, which did not
flood the syslog with them.The actual underlying problem was introduced in 2.6.23, when somebody
made the string parsing no longer accept nul-terminated strings as a
valid input to store_uevent().Eg. "add\0" was valid prior to 2.6.23, where the code regressed to
require "add" without the '\0'.This patch fixes the 2.6.23 / 2.6.24 regressions, by having the code
once again tolerate the trailing '\0', if present.According to GregKH, this mainly affects older Ubuntu systems, such as
the one I have here that requires this fix.Signed-off-by: Mark Lord
Signed-off-by: Linus Torvalds
28 Mar, 2008
1 commit
-
This fix broken compilation for 'allnoconfig'. This was introduced by
Introduced by commit 1218854afa6f659be90b748cf1bc7badee954a35 ("[NET]
NETNS: Omit seq_net_private->net without CONFIG_NET_NS.")Signed-off-by: Denis V. Lunev
Acked-by: YOSHIFUJI Hideaki
Signed-off-by: David S. Miller
25 Jan, 2008
3 commits
-
Clean up the kobject.c and kobject_uevent.c files to follow the
proper coding style rules.Signed-off-by: Greg Kroah-Hartman
-
We save the current state in the object itself, so we can do proper
cleanup when the last reference is dropped.If the initial reference is dropped, the object will be removed from
sysfs if needed, if an "add" event was sent, "remove" will be send, and
the allocated resources are released.This allows us to clean up some driver core usage as well as allowing us
to do other such changes to the rest of the kernel.Signed-off-by: Kay Sievers
Signed-off-by: Greg Kroah-Hartman -
The kobject debugging messages are a mess. This provides a unified
message that makes them actually useful.The format for new kobject debug messages should be:
kobject: 'KOBJECT_NAME' (ADDRESS): FUNCTION_NAME: message.\nCc: Kay Sievers
Signed-off-by: Greg Kroah-Hartman
20 Oct, 2007
1 commit
-
Fix the various misspellings of "system", controller", "interrupt" and
"[un]necessary".Signed-off-by: Robert P. J. Day
Signed-off-by: Adrian Bunk
13 Oct, 2007
4 commits
-
Signed-off-by: Kay Sievers
Signed-off-by: Greg Kroah-Hartman -
Move uevent specific logic from the core into kobject_uevent.c, which
does no longer require to link the unused string array if hotplug
is not compiled in.Signed-off-by: Kay Sievers
Signed-off-by: Greg Kroah-Hartman -
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
Signed-off-by: Greg Kroah-Hartman -
This changes the uevent buffer functions to use a struct instead of a
long list of parameters. It does no longer require the caller to do the
proper buffer termination and size accounting, which is currently wrong
in some places. It fixes a known bug where parts of the uevent
environment are overwritten because of wrong index calculations.Many thanks to Mathieu Desnoyers for finding bugs and improving the
error handling.Signed-off-by: Kay Sievers
Cc: Mathieu Desnoyers
Cc: Cornelia Huck
Signed-off-by: Greg Kroah-Hartman
11 Oct, 2007
1 commit
-
Each netlink socket will live in exactly one network namespace,
this includes the controlling kernel sockets.This patch updates all of the existing netlink protocols
to only support the initial network namespace. Request
by clients in other namespaces will get -ECONREFUSED.
As they would if the kernel did not have the support for
that netlink protocol compiled in.As each netlink protocol is updated to be multiple network
namespace safe it can register multiple kernel sockets
to acquire a presence in the rest of the network namespaces.The implementation in af_netlink is a simple filter implementation
at hash table insertion and hash table look up time.Signed-off-by: Eric W. Biederman
Signed-off-by: David S. Miller
31 Jul, 2007
1 commit
-
Leaving kobject_actions[] in kobject_uevent.c, but putting it outside
the #ifdef looks indeed like the best solution to me. This way, we
avoid adding #ifdef CONFIG_HOTPLUG into core.c, when all other
functions called do not need such a thing.Signed-off-by: Cornelia Huck
Cc: Kay Sievers
Signed-off-by: Greg Kroah-Hartman
19 Jul, 2007
1 commit
-
This allows the uevent file to handle any type of uevent action to be
triggered by userspace instead of just the "add" uevent.Signed-off-by: Kay Sievers
Signed-off-by: Greg Kroah-Hartman
18 Jul, 2007
1 commit
-
Rather than using a tri-state integer for the wait flag in
call_usermodehelper_exec, define a proper enum, and use that. I've
preserved the integer values so that any callers I've missed should
still work OK.Signed-off-by: Jeremy Fitzhardinge
Cc: James Bottomley
Cc: Randy Dunlap
Cc: Christoph Hellwig
Cc: Andi Kleen
Cc: Paul Mackerras
Cc: Johannes Berg
Cc: Ralf Baechle
Cc: Bjorn Helgaas
Cc: Joel Becker
Cc: Tony Luck
Cc: Kay Sievers
Cc: Srivatsa Vaddagiri
Cc: Oleg Nesterov
Cc: David Howells
28 Apr, 2007
3 commits
-
This patch contains the overdue removal of the mount/umount uevents.
Signed-off-by: Adrian Bunk
Signed-off-by: Greg Kroah-Hartman -
Collapses a do..while() loop within an if() to a simple while() loop for
simplicity and readability.Signed-off-by: John Anthony Kazos Jr.
Signed-off-by: Greg Kroah-Hartman -
- uses a kset in "struct class" to keep track of all directories
belonging to this class
- merges with the /sys/devices/virtual logic.
- removes the namespace-dir if the last member of that class
leaves the directory.There may be locking or refcounting fixes left, I stopped when it seemed
to work with network and sound modules. :)From: Kay Sievers
Signed-off-by: Greg Kroah-Hartman
26 Apr, 2007
1 commit
-
Switch cb_lock to mutex and allow netlink kernel users to override it
with a subsystem specific mutex for consistent locking in dump callbacks.
All netlink_dump_start users have been audited not to rely on any
side-effects of the previously used spinlock.Signed-off-by: Patrick McHardy
Signed-off-by: David S. Miller
21 Dec, 2006
1 commit
-
Since kobject_uevent() function does not return an integer value to
indicate if its operation was completed with success or not, it is worth
changing it in order to report a proper status (success or error) instead
of returning void.[randy.dunlap@oracle.com: Fix inline kobject functions]
Cc: Mauricio Lin
Signed-off-by: Aneesh Kumar K.V
Signed-off-by: Randy Dunlap
Signed-off-by: Andrew Morton
Signed-off-by: Greg Kroah-Hartman
02 Dec, 2006
1 commit
-
Provide a function device_move() to move a device to a new parent device. Add
auxilliary functions kobject_move() and sysfs_move_dir().
kobject_move() generates a new uevent of type KOBJ_MOVE, containing the
previous path (DEVPATH_OLD) in addition to the usual values. For this, a new
interface kobject_uevent_env() is created that allows to add further
environmental data to the uevent at the kobject layer.Signed-off-by: Cornelia Huck
Acked-by: Kay Sievers
Signed-off-by: Greg Kroah-Hartman
04 Aug, 2006
1 commit
-
Remove uevent dock notifications. There are no consumers
of these events at present, and uevents are likely not the
correct way to send this type of event anyway.Until I get some kind of idea if anyone in userspace cares
about dock events, I will just not send any.Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman
27 Jun, 2006
1 commit
-
so that userspace can be notified of dock and undock events.
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman
Signed-off-by: Andrew Morton
Signed-off-by: Len Brown
28 Apr, 2006
1 commit
-
This fixes a build error for various odd combinations of CONFIG_HOTPLUG
and CONFIG_NET.Signed-off-by: Kay Sievers
Cc: Nigel Cunningham
Cc: Andrew Morton
Signed-off-by: Greg Kroah-Hartman
21 Mar, 2006
1 commit
-
Moving uevent_seqnum and uevent_helper to kobject_uevent.c
because they are used even if CONFIG_SYSFS=n
while kernel/ksysfs.c is built only if CONFIG_SYSFS=y,Signed-off-by: Jun'ichi Nomura
Signed-off-by: Greg Kroah-Hartman
23 Feb, 2006
1 commit
-
This change reverts the 033b96fd30db52a710d97b06f87d16fc59fee0f1 commit
from Kay Sievers that removed the mount/umount uevents from the kernel.
Some older versions of HAL still depend on these events to detect when a
new device has been mounted. These events are not correctly emitted,
and are broken by design, and so, should not be relied upon by any
future program. Instead, the /proc/mounts file should be polled to
properly detect this kind of event.A feature-removal-schedule.txt entry has been added, noting when this
interface will be removed from the kernel.Signed-off-by: Greg Kroah-Hartman
07 Feb, 2006
1 commit
-
The buffer used for kobject uevent is too small for some of the events generated
by the input layer. Bump it to 2k.Signed-off-by: Benjamin Herrenschmidt
Signed-off-by: Greg Kroah-Hartman
05 Jan, 2006
1 commit
-
lib/lib.a(kobject_uevent.o)(.text+0x25f): In function `kobject_uevent':
: undefined reference to `__alloc_skb'
lib/lib.a(kobject_uevent.o)(.text+0x2a1): In function `kobject_uevent':
: undefined reference to `skb_over_panic'
lib/lib.a(kobject_uevent.o)(.text+0x31d): In function `kobject_uevent':
: undefined reference to `skb_over_panic'
lib/lib.a(kobject_uevent.o)(.text+0x356): In function `kobject_uevent':
: undefined reference to `netlink_broadcast'
lib/lib.a(kobject_uevent.o)(.init.text+0x9): In function `kobject_uevent_init':
: undefined reference to `netlink_kernel_create'
make: *** [.tmp_vmlinux1] Error 1Netlink is unconditionally enabled if CONFIG_NET, so that's OK.
kobject_uevent.o is compiled even if !CONFIG_HOTPLUG, which is lazy.
Let's compound the sin.
Signed-off-by: Andrew Morton
Signed-off-by: Greg Kroah-Hartman