linux-kernel-test/arch
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
..
alpha [PATCH] alpha: task_pt_regs() 2006-01-12 09:08:50 -08:00
arm Merge master.kernel.org:/home/rmk/linux-2.6-arm 2006-01-18 15:18:53 -08:00
arm26 [PATCH] arm26: s/task_threas_info/task_thread_info/ 2006-01-16 23:15:27 -08:00
cris [PATCH] cris: task_thread_info() 2006-01-12 09:08:58 -08:00
frv [PATCH] frv: task_thread_info(), task_stack_page() 2006-01-12 09:08:54 -08:00
h8300 [PATCH] h8300: task_stack_page() 2006-01-12 09:08:55 -08:00
i386 [PATCH] e1000: Added disable packet split capability 2006-01-18 16:17:57 -05:00
ia64 [PATCH] e1000: Added disable packet split capability 2006-01-18 16:17:57 -05:00
m32r [PATCH] m32r: task_pt_regs(), task_stack_page(), task_thread_info() 2006-01-12 09:08:54 -08:00
m68k [PATCH] m68k: console code in head.S needs framebuffer support built in 2006-01-12 09:09:06 -08:00
m68knommu [PATCH] m68knommu: task_stack_page() 2006-01-12 09:08:55 -08:00
mips [PATCH] mips: add pm_power_off 2006-01-16 23:15:26 -08:00
parisc [PATCH] e1000: Added disable packet split capability 2006-01-18 16:17:57 -05:00
powerpc [PATCH] e1000: Added disable packet split capability 2006-01-18 16:17:57 -05:00
ppc [PATCH] e1000: Added disable packet split capability 2006-01-18 16:17:57 -05:00
s390 [PATCH] s390: cputime misaccounting 2006-01-14 18:27:09 -08:00
sh [PATCH] sh: Move CPU subtype configuration to its own Kconfig 2006-01-16 23:15:28 -08:00
sh64 [PATCH] sh64: task_stack_page() 2006-01-12 09:08:57 -08:00
sparc [SPARC]: change if() BUG(); to BUG_ON in iommu.c 2006-01-17 15:36:05 -08:00
sparc64 Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2006-01-18 15:08:02 -08:00
um [PATCH] uml: fix spinlock recursion and sleep-inside-spinlock in error path 2006-01-18 19:20:21 -08:00
v850 [PATCH] v850: task_stack_page(), task_pt_regs() 2006-01-12 09:08:54 -08:00
x86_64 [PATCH] x86_64: Fix MCE exception stack for boot CPU 2006-01-18 19:20:16 -08:00
xtensa [PATCH] xtensa: task_pt_regs(), task_stack_page() 2006-01-12 09:08:54 -08:00