kernel-hacking-2024-linux-s.../arch/arm/kernel
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
..
.gitignore
armksyms.c [ARM] support tracing when using newer compilers 2009-08-13 20:34:36 +02:00
arthur.c
asm-offsets.c
atags.c
atags.h
bios32.c
calls.S ARM: 5677/1: ARM support for TIF_RESTORE_SIGMASK/pselect6/ppoll/epoll_pwait 2009-08-15 15:10:31 +01:00
compat.c
compat.h
crunch-bits.S
crunch.c [ARM] 5577/2: ep93xx: syscon locked register functions 2009-07-09 16:10:51 +01:00
debug.S
dma-isa.c
dma.c
ecard.c
ecard.h
elf.c [ARM] disable NX support for OABI-supporting kernels 2009-05-23 11:36:20 +01:00
entry-armv.S Clear the exclusive monitor when returning from an exception 2009-09-18 23:30:11 +01:00
entry-common.S Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-09-14 17:48:14 -07:00
entry-header.S Clear the exclusive monitor when returning from an exception 2009-09-18 23:30:11 +01:00
fiq.c [ARM] 5421/1: ftrace: fix crash due to tracing of __naked functions 2009-03-12 21:33:03 +00:00
ftrace.c
head-common.S Thumb-2: Implementation of the unified start-up and exceptions code 2009-07-24 12:32:54 +01:00
head-nommu.S nommu: Do not override the CP15 control reg value returned from initfunc 2009-07-24 12:34:59 +01:00
head.S Thumb-2: Implementation of the unified start-up and exceptions code 2009-07-24 12:32:54 +01:00
init_task.c mm: consolidate init_mm definition 2009-06-16 19:47:28 -07:00
io.c
irq.c ARM: Show FIQ in /proc/interrupts on CONFIG_FIQ 2009-08-17 00:00:41 +01:00
isa.c
iwmmxt.S
kgdb.c
kprobes-decode.c
kprobes.c
machine_kexec.c
Makefile [ARM] 5613/1: implement CALLER_ADDRESSx 2009-07-21 17:21:28 +01:00
module.c Thumb-2: Add support for loadable modules 2009-07-24 12:32:59 +01:00
process.c Thumb-2: Implementation of the unified start-up and exceptions code 2009-07-24 12:32:54 +01:00
ptrace.c nommu: ptrace support 2009-07-24 12:34:58 +01:00
ptrace.h
relocate_kernel.S
return_address.c [ARM] 5613/1: implement CALLER_ADDRESSx 2009-07-21 17:21:28 +01:00
setup.c Thumb-2: Implementation of the unified start-up and exceptions code 2009-07-24 12:32:54 +01:00
signal.c Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-09-14 17:48:14 -07:00
signal.h
smp.c Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6 into devel 2009-06-11 15:35:00 +01:00
smp_scu.c [ARM] 5516/1: Flush the D-cache after initialising the SCU 2009-05-28 13:52:05 +01:00
smp_twd.c [ARM] smp: fix style issues in smp_twd.c 2009-05-17 19:16:41 +01:00
stacktrace.c [ARM] 5613/1: implement CALLER_ADDRESSx 2009-07-21 17:21:28 +01:00
sys_arm.c
sys_oabi-compat.c Separate out common fstatat code into vfs_fstatat 2009-04-20 23:02:51 -04:00
thumbee.c
time.c
traps.c
unwind.c Thumb-2: Implementation of the unified start-up and exceptions code 2009-07-24 12:32:54 +01:00
vmlinux.lds.S Merge branch 'master' into for-next 2009-07-04 07:13:18 +09:00
xscale-cp0.c