kernel-ark/arch/um/drivers
Paolo 'Blaisorblade' Giarrusso 48af05ed54 [PATCH] uml: fix proc-vs-interrupt context spinlock deadlock
This spinlock can be taken on interrupt too, so spin_lock_irq[save] must be
used.

However, Documentation/networking/netdevices.txt explains we are called with
rtnl_lock() held - so we don't need to care about other concurrent opens.
Verified also in LDD3 and by direct checking.  Also verified that the network
layer (through a state machine) guarantees us that nobody will close the
interface while it's being used.  Please correct me if I'm wrong.

Also, we must check we don't sleep with irqs disabled!!!  But anyway, this is
not news - we already can't sleep while holding a spinlock.  Who says this is
guaranted really by the present code?

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-09-27 08:26:15 -07:00
..
chan_kern.c [PATCH] uml: Use ARRAY_SIZE more assiduously 2006-09-26 08:49:05 -07:00
chan_user.c
cow_sys.h [PATCH] uml: avoid warnings for diffent names for an unsigned quadword 2006-04-11 06:18:37 -07:00
cow_user.c [PATCH] uml: fix patch mismerge 2006-05-01 18:17:44 -07:00
cow.h [PATCH] uml: avoid warnings for diffent names for an unsigned quadword 2006-04-11 06:18:37 -07:00
daemon_kern.c [PATCH] uml: fix initcall return values 2006-03-31 12:18:50 -08:00
daemon_user.c
daemon.h
fd.c
harddog_kern.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
harddog_user.c
hostaudio_kern.c [PATCH] uml: sparse cleanups 2006-03-31 12:18:51 -08:00
line.c [PATCH] irq-flags: UM: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
Makefile
mcast_kern.c [PATCH] uml: fix initcall return values 2006-03-31 12:18:50 -08:00
mcast_user.c
mcast.h
mconsole_kern.c [PATCH] uml: Use ARRAY_SIZE more assiduously 2006-09-26 08:49:05 -07:00
mconsole_user.c [PATCH] uml: Use ARRAY_SIZE more assiduously 2006-09-26 08:49:05 -07:00
mmapper_kern.c
net_kern.c [PATCH] uml: fix proc-vs-interrupt context spinlock deadlock 2006-09-27 08:26:15 -07:00
net_user.c [PATCH] uml: add some EINTR protection 2006-07-10 13:24:24 -07:00
null.c
pcap_kern.c [PATCH] uml: Use ARRAY_SIZE more assiduously 2006-09-26 08:49:05 -07:00
pcap_user.c
pcap_user.h
port_kern.c [PATCH] irq-flags: UM: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
port_user.c
port.h
pty.c
random.c
slip_common.c
slip_common.h
slip_kern.c [PATCH] uml: fix initcall return values 2006-03-31 12:18:50 -08:00
slip_user.c
slip.h
slirp_kern.c [PATCH] uml: sparse cleanups 2006-03-31 12:18:51 -08:00
slirp_user.c [PATCH] uml: fix format errors 2006-04-11 06:18:36 -07:00
slirp.h
ssl.c [PATCH] devfs: Remove the line_driver devfs_name field as it's no longer needed 2006-06-26 12:25:09 -07:00
ssl.h
stderr_console.c [PATCH] uml: unregister useless console when it's not needed 2006-06-30 11:25:37 -07:00
stdio_console.c [PATCH] devfs: Remove the line_driver devfs_name field as it's no longer needed 2006-06-26 12:25:09 -07:00
stdio_console.h
tty.c [PATCH] uml: formatting fixes 2006-07-10 13:24:24 -07:00
ubd_kern.c [PATCH] uml: remove unused variable 2006-07-10 13:24:24 -07:00
ubd_user.c
xterm_kern.c [PATCH] irq-flags: UM: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
xterm.c
xterm.h