arm64: mm: don't treat user cache maintenance faults as writes
authorWill Deacon <will.deacon@arm.com>
Fri, 19 Jul 2013 14:37:12 +0000 (15:37 +0100)
committerMark Brown <broonie@linaro.org>
Wed, 14 May 2014 11:13:33 +0000 (12:13 +0100)
commitbcc37aab3547afa2b1fda11ae525930e0de76b90
treea3dba177bec13f54c49aafd741fece635ec57817
parent8bb495e3f02401ee6f76d1b1d77f3ac9f079e376
arm64: mm: don't treat user cache maintenance faults as writes

commit db6f41063cbdb58b14846e600e6bc3f4e4c2e888 upstream.

On arm64, cache maintenance faults appear as data aborts with the CM
bit set in the ESR. The WnR bit, usually used to distinguish between
faulting loads and stores, always reads as 1 and (slightly confusingly)
the instructions are treated as reads by the architecture.

This patch fixes our fault handling code to treat cache maintenance
faults in the same way as loads.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 88c0a794e5d9bcc29926e636cd1d6eb5c9dcb235)
Signed-off-by: Mark Brown <broonie@linaro.org>
arch/arm64/mm/fault.c