linux/arch/sh/include
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
..
asm sh: Fix up xchg/cmpxchg corruption with gUSA RB. 2011-06-08 15:22:39 +09:00
cpu-common/cpu sh: Kill off unused cpu/cacheflush.h. 2009-08-21 16:20:57 +09:00
cpu-sh2/cpu sh: Mass ctrl_in/outX to __raw_read/writeX conversion. 2010-01-26 12:58:40 +09:00
cpu-sh2a/cpu sh: Convert SH-2A to new cacheflush interface. 2009-08-15 12:38:29 +09:00
cpu-sh3/cpu sh: Fix up the SH-3 build. 2010-10-07 02:57:39 +09:00
cpu-sh4/cpu sh: mark DMA slave ID 0 as invalid 2011-05-25 11:57:23 +09:00
cpu-sh5/cpu sh: Convert cache disabled SH-5 over to new cache interface. 2009-08-16 00:53:56 +09:00
mach-common/mach Fix common misspellings 2011-03-31 11:26:23 -03:00
mach-dreamcast/mach sh: mach-dreamcast: Convert to sparseirq. 2010-02-02 18:01:55 +09:00
mach-ecovec24/mach sh, mmc: Make mmcif_update_progress static inline 2010-11-29 12:54:44 +09:00
mach-kfr2r09/mach sh, mmc: Make mmcif_update_progress static inline 2010-11-29 12:54:44 +09:00
mach-landisk/mach sh: Move init_landisk_IRQ to header file 2011-01-11 12:47:33 +09:00
mach-migor/mach sh: audio support for the sh7722 Migo-R board 2010-03-02 11:08:54 +09:00
mach-sdk7786/mach sh: mach-sdk7786: Handle baseboard NMI source selection. 2010-12-17 18:58:04 +09:00
mach-se/mach sh: mach-se: Convert SE7343 FPGA to dynamic IRQ allocation. 2010-01-12 13:37:04 +09:00
mach-sh03/mach
mach-x3proto/mach sh: mach-x3proto: Support for baseboard GPIOs. 2010-10-04 02:59:29 +09:00