OpenCloudOS-Kernel/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
..
Makefile [PATCH] uml: revert block driver use of host AIO 2005-10-12 08:22:26 -07:00
chan_kern.c [PATCH] uml: Use ARRAY_SIZE more assiduously 2006-09-26 08:49:05 -07:00
chan_user.c [PATCH] uml: close TUN/TAP file descriptors 2006-02-07 16:12:32 -08:00
cow.h [PATCH] uml: avoid warnings for diffent names for an unsigned quadword 2006-04-11 06:18:37 -07:00
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
daemon.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
daemon_kern.c [PATCH] uml: fix initcall return values 2006-03-31 12:18:50 -08:00
daemon_user.c [PATCH] uml: make daemon transport behave properly 2006-01-18 19:20:20 -08:00
fd.c [PATCH] uml: move libc-dependent utility procedures 2006-01-18 19:20:19 -08:00
harddog_kern.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
harddog_user.c [PATCH] uml: separate libc-dependent helper code 2005-11-07 07:53:31 -08:00
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
mcast.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mcast_kern.c [PATCH] uml: fix initcall return values 2006-03-31 12:18:50 -08:00
mcast_user.c [PATCH] uml: fix mcast network driver error handling 2005-11-13 18:14:14 -08:00
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 [PATCH] mmaper_kern.c fixes [buffer overruns] 2005-08-27 10:11:40 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcap_kern.c [PATCH] uml: Use ARRAY_SIZE more assiduously 2006-09-26 08:49:05 -07:00
pcap_user.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcap_user.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
port.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
port_kern.c [PATCH] irq-flags: UM: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
port_user.c [PATCH] uml console channels: remove console_write wrappers 2005-11-13 18:14:14 -08:00
pty.c [PATCH] uml console channels: remove console_write wrappers 2005-11-13 18:14:14 -08:00
random.c [PATCH] um: fix-up schedule_timeout() usage 2005-11-07 07:53:56 -08:00
slip.h [PATCH] uml: slirp and slip driver cleanups and fixes 2005-06-13 20:58:43 -07:00
slip_common.c [PATCH] uml: slirp and slip driver cleanups and fixes 2005-06-13 20:58:43 -07:00
slip_common.h [PATCH] uml: fix hugest stack users 2006-02-01 08:53:22 -08:00
slip_kern.c [PATCH] uml: fix initcall return values 2006-03-31 12:18:50 -08:00
slip_user.c [PATCH] uml: separate libc-dependent helper code 2005-11-07 07:53:31 -08:00
slirp.h [PATCH] uml: slirp and slip driver cleanups and fixes 2005-06-13 20:58:43 -07:00
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
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 [PATCH] uml: revert block driver use of host AIO 2005-10-12 08:22:26 -07:00
xterm.c [PATCH] uml console channels: remove console_write wrappers 2005-11-13 18:14:14 -08:00
xterm.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xterm_kern.c [PATCH] irq-flags: UM: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00