linux/arch/um/drivers
Paolo 'Blaisorblade' Giarrusso 71c8d4c3aa [PATCH] uml: fix spinlock recursion and sleep-inside-spinlock in error path
In this error path, when the interface has had a problem, we call dev_close(),
which is disallowed for two reasons:

*) takes again the UML internal spinlock, inside the ->stop method of this
   device
*) can be called in process context only, while we're in interrupt context.

I've also thought that calling dev_close() may be a wrong policy to follow,
but it's not up to me to decide that.

However, we may end up with multiple dev_close() queued on the same device.
But the initial test for (dev->flags & IFF_UP) makes this harmless, though -
and dev_close() is supposed to care about races with itself.  So there's no
harm in delaying the shutdown, IMHO.

Something to mark the interface as "going to shutdown" would be appreciated,
but dev_deactivate has the same problems as dev_close(), so we can't use it
either.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-18 19:20:21 -08:00
..
Makefile [PATCH] uml: revert block driver use of host AIO 2005-10-12 08:22:26 -07:00
chan_kern.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
chan_user.c [PATCH] uml console channels: fix the API of console_write 2005-11-13 18:14:14 -08:00
cow.h [PATCH] uml: cleanup whitespace for COW driver 2005-10-10 08:36:00 -07:00
cow_sys.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cow_user.c [PATCH] uml: cleanup byte order macros for COW driver 2005-10-10 08:36:00 -07:00
daemon.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
daemon_kern.c [PATCH] uml: make daemon transport behave properly 2006-01-18 19:20:20 -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 [PATCH] uml: separate libc-dependent helper code 2005-11-07 07:53:31 -08:00
harddog_user.c [PATCH] uml: separate libc-dependent helper code 2005-11-07 07:53:31 -08:00
hostaudio_kern.c [PATCH] uml: update module interface 2005-07-27 16:25:48 -07:00
line.c [PATCH] uml: SIGWINCH handling cleanup 2006-01-06 08:33:47 -08:00
mcast.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mcast_kern.c [PATCH] uml: multicast driver cleanup 2005-05-20 15:48:17 -07: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: eliminate doubled boot output 2006-01-11 18:42:09 -08:00
mconsole_user.c [PATCH] uml: add mconsole_reply variant with length param 2006-01-06 08:33:47 -08: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 spinlock recursion and sleep-inside-spinlock in error path 2006-01-18 19:20:21 -08:00
net_user.c [PATCH] uml: separate libc-dependent helper code 2005-11-07 07:53:31 -08:00
null.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcap_kern.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -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] useless linux/irq.h includes (arch/um) 2005-09-30 08:42:24 -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: slirp and slip driver cleanups and fixes 2005-06-13 20:58:43 -07:00
slip_kern.c [PATCH] uml: slirp and slip driver cleanups and fixes 2005-06-13 20:58:43 -07: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: slirp and slip driver cleanups and fixes 2005-06-13 20:58:43 -07:00
slirp_user.c [PATCH] uml: separate libc-dependent helper code 2005-11-07 07:53:31 -08:00
ssl.c [PATCH] uml: Add throttling to console driver 2006-01-06 08:33:46 -08:00
ssl.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
stderr_console.c [PATCH] uml: compile fixes for gcc 4 2005-06-08 16:21:12 -07:00
stdio_console.c [PATCH] uml: Add throttling to console driver 2006-01-06 08:33:46 -08:00
stdio_console.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tty.c [PATCH] uml console channels: remove console_write wrappers 2005-11-13 18:14:14 -08:00
ubd_kern.c [PATCH] uml: kill an unused variable 2006-01-11 18:42:10 -08: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] uml: add and use generic hw_controller_type->release 2005-06-21 19:07:32 -07:00