ARM: 7091/1: errata: D-cache line maintenance operation by MVA may not succeed
authorWill Deacon <will.deacon@arm.com>
Thu, 15 Sep 2011 10:45:15 +0000 (11:45 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 3 Oct 2011 18:41:06 +0000 (11:41 -0700)
commit85fd323003d5fe4d5c798688f016ab0eda0c9dcf
tree4917cc663c26b87a79413f3607efe29eb9b14d9a
parent017a4b549759497c802c12c5982cf06f93806e60
ARM: 7091/1: errata: D-cache line maintenance operation by MVA may not succeed

commit f630c1bdfbf8fe423325beaf60027cfc7fd7c610 upstream.

This patch implements a workaround for erratum 764369 affecting
Cortex-A9 MPCore with two or more processors (all current revisions).
Under certain timing circumstances, a data cache line maintenance
operation by MVA targeting an Inner Shareable memory region may fail to
proceed up to either the Point of Coherency or to the Point of
Unification of the system. This workaround adds a DSB instruction before
the relevant cache maintenance functions and sets a specific bit in the
diagnostic control register of the SCU.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/arm/Kconfig
arch/arm/kernel/smp_scu.c
arch/arm/mm/cache-v7.S