linux/arch/arm/lib
Catalin Marinas 90303b1023 [ARM] 3256/1: Make the function-returning ldm's use sp as the base register
Patch from Catalin Marinas

If the low interrupt latency mode is enabled for the CPU (from ARMv6
onwards), the ldm/stm instructions are no longer atomic. An ldm instruction
restoring the sp and pc registers can be interrupted immediately after sp
was updated but before the pc. If this happens, the CPU restores the base
register to the value before the ldm instruction but if the base register
is not sp, the interrupt routine will corrupt the stack and the restarted
ldm instruction will load garbage.

Note that future ARM cores might always run in the low interrupt latency
mode.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-01-12 16:53:51 +00:00
..
ashldi3.S [ARM] 3049/1: More optimized libgcc functions 2005-10-30 23:08:03 +00:00
ashrdi3.S [ARM] 3049/1: More optimized libgcc functions 2005-10-30 23:08:03 +00:00
backtrace.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bitops.h [ARM] Clean up save_and_disable_irqs macro and allow use of ARMv6 CPSID 2005-11-09 15:04:22 +00:00
changebit.S [PATCH] ARM: bitops 2005-04-17 15:51:02 +01:00
clear_user.S [ARM] 2946/2: split --arch_clear_user() out of lib/uaccess.S 2005-11-01 19:52:22 +00:00
clearbit.S [PATCH] ARM: bitops 2005-04-17 15:51:02 +01:00
copy_from_user.S [ARM] 2948/1: new preemption safe copy_{to|from}_user implementation 2005-11-01 19:52:24 +00:00
copy_page.S kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00
copy_template.S [ARM] 2947/1: copy template with new memcpy/memmove 2005-11-01 19:52:23 +00:00
copy_to_user.S [ARM] 2948/1: new preemption safe copy_{to|from}_user implementation 2005-11-01 19:52:24 +00:00
csumipv6.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
csumpartial.S [ARM] 3152/1: make various assembly local labels actually local (the rest) 2005-11-11 21:51:49 +00:00
csumpartialcopy.S [ARM] 3256/1: Make the function-returning ldm's use sp as the base register 2006-01-12 16:53:51 +00:00
csumpartialcopygeneric.S [ARM] 3256/1: Make the function-returning ldm's use sp as the base register 2006-01-12 16:53:51 +00:00
csumpartialcopyuser.S [ARM] 3256/1: Make the function-returning ldm's use sp as the base register 2006-01-12 16:53:51 +00:00
delay.S [ARM] 3152/1: make various assembly local labels actually local (the rest) 2005-11-11 21:51:49 +00:00
div64.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ecard.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
findbit.S [ARM] 3152/1: make various assembly local labels actually local (the rest) 2005-11-11 21:51:49 +00:00
floppydma.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
getuser.S [ARM] Fix get_user when passed a const pointer 2005-11-18 14:22:03 +00:00
io-acorn.S [ARM] 3151/1: make various assembly local labels actually local (io-*.S) 2005-11-11 21:51:48 +00:00
io-readsb.S [ARM] 3151/1: make various assembly local labels actually local (io-*.S) 2005-11-11 21:51:48 +00:00
io-readsl.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
io-readsw-armv3.S [ARM] 3151/1: make various assembly local labels actually local (io-*.S) 2005-11-11 21:51:48 +00:00
io-readsw-armv4.S [ARM] 3151/1: make various assembly local labels actually local (io-*.S) 2005-11-11 21:51:48 +00:00
io-shark.c [PATCH] ARM: 2815/1: Shark: new defconfig, fixes with __io and serial ports 2005-07-16 17:17:18 +01:00
io-writesb.S [ARM] 3151/1: make various assembly local labels actually local (io-*.S) 2005-11-11 21:51:48 +00:00
io-writesl.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
io-writesw-armv3.S [ARM] 3151/1: make various assembly local labels actually local (io-*.S) 2005-11-11 21:51:48 +00:00
io-writesw-armv4.S [ARM] 3151/1: make various assembly local labels actually local (io-*.S) 2005-11-11 21:51:48 +00:00
lib1funcs.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
lshrdi3.S [ARM] 3049/1: More optimized libgcc functions 2005-10-30 23:08:03 +00:00
Makefile [ARM] 2948/1: new preemption safe copy_{to|from}_user implementation 2005-11-01 19:52:24 +00:00
memchr.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
memcpy.S [ARM] 2947/1: copy template with new memcpy/memmove 2005-11-01 19:52:23 +00:00
memmove.S [ARM] 2947/1: copy template with new memcpy/memmove 2005-11-01 19:52:23 +00:00
memset.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
memzero.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
muldi3.S [ARM] 3049/1: More optimized libgcc functions 2005-10-30 23:08:03 +00:00
putuser.S kbuild: arm - use generic asm-offsets.h support 2005-09-09 21:08:59 +02:00
setbit.S [PATCH] ARM: bitops 2005-04-17 15:51:02 +01:00
sha1.S [ARM] 2930/1: optimized sha1 implementation for ARM 2005-10-28 15:26:40 +01:00
strchr.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
strncpy_from_user.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
strnlen_user.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
strrchr.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
testchangebit.S [PATCH] ARM: bitops 2005-04-17 15:51:02 +01:00
testclearbit.S [PATCH] ARM: bitops 2005-04-17 15:51:02 +01:00
testsetbit.S [PATCH] ARM: bitops 2005-04-17 15:51:02 +01:00
uaccess.S [ARM] 3150/1: make various assembly local labels actually local (uaccess.S) 2005-11-11 21:51:47 +00:00
ucmpdi2.S [ARM] 3049/1: More optimized libgcc functions 2005-10-30 23:08:03 +00:00