kernel-ark/arch/sh
Srinivas KANDAGATLA 5bdbd4fa4d sh: Fix up xchg/cmpxchg corruption with gUSA RB.
gUSA special cases r15 for part of its login/out sequence, meaning that
any parameters need to be explicitly prohibited from accidentally being
assigned that particular register, and the compiler ultimately needs to
use a temporary instead.

Certain configurations have begun generating code paths that do indeed
get allocated r15, resulting in immediate corruption of the exchanged
value. This was observed in (amongst others) exit_mm() code generation
where the xchg_u32 call was immediately corrupting a structure address.

As this is a general gUSA restriction, the rest of the users likewise
need to be updated to ensure sensible constraints.

References: https://bugzilla.stlinux.com/show_bug.cgi?id=11229
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
Reviewed-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2011-06-08 15:22:39 +09:00
..
boards sh: add MMCIF runtime PM support on ecovec 2011-05-24 15:22:45 +09:00
boot sh: Remove compressed kernel libgcc dependency. 2011-06-06 17:57:58 +09:00
cchips sh: Convert to new function names 2011-03-29 14:48:13 +02:00
configs cgroup: remove the ns_cgroup 2011-05-26 17:12:34 -07:00
drivers SH: SE7751: Fix pcibios_map_platform_irq prototype. 2011-05-23 14:46:36 +09:00
include sh: Fix up xchg/cmpxchg corruption with gUSA RB. 2011-06-08 15:22:39 +09:00
kernel Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into sh-fixes-for-linus 2011-05-31 13:10:26 +09:00
lib sh: Ensure ST40-300 BogoMIPS value is consistent 2011-02-15 16:24:05 +09:00
lib64 Fix common misspellings 2011-03-31 11:26:23 -03:00
math-emu sh: wire up perf alignment and emulation faults. 2010-10-13 06:55:26 +09:00
mm sh: fix wrong icache/dcache address-array start addr in cache-debugfs. 2011-06-06 12:30:02 +09:00
oprofile sh: remove warning and warning_symbol from struct stacktrace_ops 2011-05-23 14:42:15 +09:00
tools sh: Add support for AP-SH4AD-0A board. 2011-01-13 18:36:21 +09:00
Kconfig Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into sh-fixes-for-linus 2011-05-31 13:10:26 +09:00
Kconfig.cpu sh: Turn on speculative return for SH7785 and SH7786 2010-02-18 18:54:18 +09:00
Kconfig.debug lib: consolidate DEBUG_STACK_USAGE option 2011-05-25 08:39:54 -07:00
Makefile sh: support XZ-compressed kernel. 2011-01-14 15:52:54 +09:00