powerpc/mm: Update PROTFAULT handling in the page fault path
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Mon, 30 Jan 2017 16:12:59 +0000 (21:42 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 15 Feb 2017 09:02:39 +0000 (20:02 +1100)
commit18061c17c8ecdbdbf1e7d1695ec44e7388b4f601
treee5d6e802db09f7302eb101ce0a12970d0861fa51
parentc21a493a2b44650707d06741601894329486f2ad
powerpc/mm: Update PROTFAULT handling in the page fault path

With radix, we can get page fault with DSISR_PROTFAULT value set in case of
PROT_NONE or autonuma mapping. The PROT_NONE case in handled by the vma check
where we consider the access bad. For autonuma we should fall through and fixup
the access mask correctly.

Without this patch we trigger the WARN_ON() on radix. This code moves that
WARN_ON() within a radix_enabled() check. I also moved the WARN_ON() outside
the if condition making it apply for all type of faults (exec/write/read). It
is also conditionalized for book3s, because BOOK3E can also get a PROTFAULT to
handle the D/I cache sync.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/copro_fault.c
arch/powerpc/mm/fault.c