Mark Rutland 2c32c65e37 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>
2014-08-27 15:40:13 +01:00
..
2008-08-12 19:54:09 +01:00
2014-04-03 22:46:34 +01:00
2014-06-01 01:17:12 +01:00
2014-08-09 14:07:59 +01:00
2012-03-28 18:30:01 +01:00
2012-03-24 09:38:56 +00:00
2014-01-28 14:06:25 +00:00
2014-07-02 15:48:25 +01:00
2014-03-18 16:39:40 -04:00
2014-08-07 20:40:41 -04:00
2014-07-02 08:33:48 +02:00
2014-03-18 16:39:40 -04:00
2014-03-18 16:39:40 -04:00