summaryrefslogtreecommitdiffstats
path: root/drivers/mfd/htc-i2cpld.c
diff options
context:
space:
mode:
authorSrinivas KANDAGATLA <srinivas.kandagatla@st.com>2011-06-08 08:22:39 +0200
committerPaul Mundt <lethal@linux-sh.org>2011-06-08 08:22:39 +0200
commit5bdbd4fa4df6891a6644d588c9a30d30e7c0af8e (patch)
tree5ae072f2628684d085b92aab2398dd873c20d619 /drivers/mfd/htc-i2cpld.c
parentsh: Remove compressed kernel libgcc dependency. (diff)
downloadlinux-5bdbd4fa4df6891a6644d588c9a30d30e7c0af8e.tar.xz
linux-5bdbd4fa4df6891a6644d588c9a30d30e7c0af8e.zip
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>
Diffstat (limited to 'drivers/mfd/htc-i2cpld.c')
0 files changed, 0 insertions, 0 deletions