linux-stable-rt/arch/arm/include/asm
Catalin Marinas 200b812d00 Clear the exclusive monitor when returning from an exception
The patch adds a CLREX or dummy STREX to the exception return path. This
is needed because several atomic/locking operations use a pair of
LDREX/STREXEQ and the EQ condition may not always be satisfied. This
would leave the exclusive monitor status set and may cause problems with
atomic/locking operations in the interrupted code.

With this patch, the atomic_set() operation can be a simple STR
instruction (on SMP systems, the global exclusive monitor is cleared by
STR anyway). Clearing the exclusive monitor during context switch is no
longer needed as this is handled by the exception return path anyway.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-by: Jamie Lokier <jamie@shareable.org>
2009-09-18 23:30:11 +01:00
..
hardware
mach
Kbuild
a.out-core.h
a.out.h
assembler.h Merge branch 'for-rmk-2.6.32' of git://git.pengutronix.de/git/ukl/linux-2.6 into devel-stable 2009-08-15 16:51:48 +01:00
atomic.h Clear the exclusive monitor when returning from an exception 2009-09-18 23:30:11 +01:00
auxvec.h
bitops.h
bitsperlong.h
bug.h
bugs.h
byteorder.h
cache.h
cacheflush.h
cachetype.h
checksum.h
clkdev.h
cpu-multi32.h
cpu-single.h
cpu.h
cputime.h
cputype.h
current.h
delay.h
device.h
div64.h
dma-mapping.h
dma.h
domain.h
ecard.h
elf.h
emergency-restart.h
errno.h
fb.h
fcntl.h
fiq.h
fixmap.h
flat.h
floppy.h
fpstate.h
ftrace.h Merge branch 'devel-stable' into devel 2009-09-12 12:02:26 +01:00
futex.h
glue.h
gpio.h
hardirq.h
highmem.h
hw_irq.h
hwcap.h
ide.h
io.h
ioctl.h
ioctls.h
ipcbuf.h
irq.h
irq_regs.h
irqflags.h
kdebug.h
kexec.h
kgdb.h
kmap_types.h
kprobes.h
leds.h
limits.h
linkage.h
local.h
localtimer.h
locks.h
mc146818rtc.h
memory.h Merge branch 'master' into devel 2009-09-12 12:04:37 +01:00
mman.h
mmu.h
mmu_context.h
mmzone.h
module.h
msgbuf.h
mtd-xip.h
mutex.h
nwflash.h
page-nommu.h
page.h ARM: Fix pfn_valid() for sparse memory 2009-09-12 11:48:09 +01:00
param.h
parport.h
pci.h PCI: remove pcibios_scan_all_fns() 2009-09-09 13:29:18 -07:00
percpu.h
pgalloc.h ARM: implement highpte 2009-08-17 20:02:06 +01:00
pgtable-hwdef.h
pgtable-nommu.h
pgtable.h ARM: implement highpte 2009-08-17 20:02:06 +01:00
poll.h
posix_types.h
proc-fns.h
processor.h
procinfo.h
ptrace.h
resource.h
scatterlist.h
sections.h
segment.h
sembuf.h
serial.h
setup.h ARM: Fix broken highmem support 2009-08-15 12:36:00 +01:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
sizes.h
smp.h
smp_scu.h
smp_twd.h
socket.h
sockios.h
sparsemem.h
spinlock.h
spinlock_types.h
stacktrace.h
stat.h
statfs.h
string.h
swab.h
system.h
termbits.h
termios.h
therm.h
thread_info.h Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-09-14 17:48:14 -07:00
thread_notify.h
timex.h
tlb.h
tlbflush.h
topology.h
traps.h
types.h
uaccess.h
ucontext.h
unaligned.h
unified.h
unistd.h ARM: 5677/1: ARM support for TIF_RESTORE_SIGMASK/pselect6/ppoll/epoll_pwait 2009-08-15 15:10:31 +01:00
unwind.h
user.h
vfp.h
vfpmacros.h
vga.h
xor.h