arm64: Ignore the 'write' ESR flag on cache maintenance faults
authorCatalin Marinas <catalin.marinas@arm.com>
Tue, 7 May 2013 15:57:06 +0000 (16:57 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 11 May 2013 14:18:24 +0000 (07:18 -0700)
commit0661e5659a502db6c989318628365fc34242481d
tree51e84e4b5ea0c9c46caa75e301db3158403b619a
parentb548047b3ed2ff999744c89277d40ef494e387d9
arm64: Ignore the 'write' ESR flag on cache maintenance faults

commit 0e7f7bcc3fc87489cda5aa6aff8ce40eed912279 upstream.

ESR.WnR bit is always set on data cache maintenance faults even though
the page is not required to have write permission. If a translation
fault (page not yet mapped) happens for read-only user address range,
Linux incorrectly assumes a permission fault. This patch adds the check
of the ESR.CM bit during the page fault handling to ignore the 'write'
flag.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-by: Tim Northover <Tim.Northover@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/mm/fault.c