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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jul 2013 21:07:23 +0000 (14:07 -0700)
commit88c0a794e5d9bcc29926e636cd1d6eb5c9dcb235
treec1c2bbcb4e32f47aab5e10761daf58ebac441c2f
parent916f4dbc2a827677212a3bf3ffcc22745fa6e0b1
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>
arch/arm64/mm/fault.c