OpenCloudOS-Kernel/arch
Jeremy Fitzhardinge 168d2f464a xen: save previous spinlock when blocking
A spinlock can be interrupted while spinning, so make sure we preserve
the previous lock of interest if we're taking a lock from within an
interrupt handler.

We also need to deal with the case where the blocking path gets
interrupted between testing to see if the lock is free and actually
blocking.  If we get interrupted there and end up in the state where
the lock is free but the irq isn't pending, then we'll block
indefinitely in the hypervisor.  This fix is to make sure that any
nested lock-takers will always leave the irq pending if there's any
chance the outer lock became free.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Acked-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-08-21 13:52:57 +02:00
..
alpha alpha: move include/asm-alpha to arch/alpha/include/asm 2008-08-15 09:19:40 -07:00
arm Merge master.kernel.org:/home/rmk/linux-2.6-arm 2008-08-16 16:48:45 -07:00
avr32 avr32: Make atstk1006_nand_data definition static 2008-08-08 12:44:56 +02:00
blackfin Blackfin arch: hook up some missing new system calls 2008-08-14 15:40:19 +08:00
cris Merge branch 'linus' into core/generic-dma-coherent 2008-07-29 00:07:55 +02:00
frv FRV: Wire up new system calls 2008-08-01 13:03:49 -07:00
h8300 [h8300] move include/asm-h8300 to arch/h8300/include/asm 2008-08-13 14:26:32 -07:00
ia64 [IA64] use generic compat_old_sys_readdir 2008-08-18 15:42:11 -07:00
m32r m32r: use generic show_mem() 2008-07-26 12:00:11 -07:00
m68k m68k{,nommu}: Wire up new system calls 2008-08-11 10:37:34 -07:00
m68knommu m68k{,nommu}: Wire up new system calls 2008-08-11 10:37:34 -07:00
mips remove unneeded #include <linux/ide.h>'s 2008-08-05 18:17:00 +02:00
mn10300 mn10300: Fix up __bug_table handling in module loader. 2008-08-04 17:22:17 -07:00
parisc [PATCH] sanitize __user_walk_fd() et.al. 2008-07-26 20:53:34 -04:00
powerpc Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 2008-08-18 17:40:13 -07:00
s390 kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE 2008-08-15 08:35:42 -07:00
sh kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE 2008-08-15 08:35:42 -07:00
sparc sparc64: Implement IRQ stacks. 2008-08-12 18:33:56 -07:00
sparc64 sparc64: Fix cmdline_memory_size handling bugs. 2008-08-14 01:45:41 -07:00
um uml: fix tty-related build error 2008-07-30 09:41:45 -07:00
x86 xen: save previous spinlock when blocking 2008-08-21 13:52:57 +02:00
xtensa remove unneeded #include <linux/ide.h>'s 2008-08-05 18:17:00 +02:00
.gitignore
Kconfig tracehook: CONFIG_HAVE_ARCH_TRACEHOOK 2008-07-26 12:00:09 -07:00