diff options
author | Mark Rutland <mark.rutland@arm.com> | 2014-08-15 13:11:50 +0200 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-08-27 16:40:13 +0200 |
commit | 2c32c65e3726c773760038910be30cce1b4d4149 (patch) | |
tree | 5882204a965a7b819f20bc8cc7ae33088d3bde88 /drivers/cpuidle/cpuidle-big_little.c | |
parent | ARM: 8128/1: abort: don't clear the exclusive monitors (diff) | |
download | linux-2c32c65e3726c773760038910be30cce1b4d4149.tar.xz linux-2c32c65e3726c773760038910be30cce1b4d4149.zip |
ARM: 8129/1: errata: work around Cortex-A15 erratum 830321 using dummy strex
On revisions of Cortex-A15 prior to r3p3, a CLREX instruction at PL1 may
falsely trigger a watchpoint exception, leading to potential data aborts
during exception return and/or livelock.
This patch resolves the issue in the following ways:
- Replacing our uses of CLREX with a dummy STREX sequence instead (as
we did for v6 CPUs).
- Removing the clrex code from v7_exit_coherency_flush and derivatives,
since this only exists as a minor performance improvement when
non-cached exclusives are in use (Linux doesn't use these).
Benchmarking on a variety of ARM cores revealed no measurable
performance difference with this change applied, so the change is
performed unconditionally and no new Kconfig entry is added.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Cc: stable@vger.kernel.org
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/cpuidle/cpuidle-big_little.c')
0 files changed, 0 insertions, 0 deletions