linux/arch/powerpc/mm
Aneesh Kumar K.V 18061c17c8 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>
2017-02-15 20:02:39 +11:00
..
8xx_mmu.c powerpc/8xx: add CONFIG_PIN_TLB_IMMR 2016-07-09 02:02:48 -05:00
40x_mmu.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
44x_mmu.c powerpc: Delete __cpuinit usage from all users 2013-07-01 11:10:36 +10:00
Makefile Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next 2016-12-16 15:05:38 +11:00
copro_fault.c powerpc/mm: Update PROTFAULT handling in the page fault path 2017-02-15 20:02:39 +11:00
dma-noncoherent.c powerpc: Simplify test in __dma_sync() 2016-03-11 17:20:12 -06:00
dump_hashpagetable.c powerpc/mm: Dump hash table 2016-11-17 17:11:47 +11:00
dump_linuxpagetables.c powerpc/mm: Fix page table dump build on non-Book3S 2016-12-01 16:20:18 +11:00
fault.c powerpc/mm: Update PROTFAULT handling in the page fault path 2017-02-15 20:02:39 +11:00
fsl_booke_mmu.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
hash64_4k.c powerpc/mm: Fix lazy icache flush on pre-POWER5 2016-11-29 23:59:40 +11:00
hash64_64k.c powerpc/mm: Fix lazy icache flush on pre-POWER5 2016-11-29 23:59:40 +11:00
hash_low_32.S ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
hash_native_64.c Merge branch 'topic/ppc-kvm' into next 2016-11-24 22:14:52 +11:00
hash_utils_64.c powerpc/pseries: Automatically resize HPT for memory hot add/remove 2017-02-10 13:28:02 +11:00
highmem.c sched/preempt, mm/kmap: Explicitly disable/enable preemption in kmap_atomic_* 2015-05-19 08:39:14 +02:00
hugepage-hash64.c powerpc/mm: Move hash table ops to a separate structure 2016-07-21 18:59:09 +10:00
hugetlbpage-book3e.c powerpc/fsl-book3e: Avoid lbarx on e5500 2016-03-03 23:43:05 -06:00
hugetlbpage-hash64.c powerpc/mm: Remove the debug hugepd_ok check 2017-01-23 19:19:28 +11:00
hugetlbpage-radix.c powerpc/mm/hugetlb: Add flush_hugetlb_tlb_range 2016-08-01 11:15:13 +10:00
hugetlbpage.c powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
icswx.c powerpc: Fix typo "CONFIG_ICSWX_PID" 2013-04-18 13:03:54 +10:00
icswx.h powerpc/icswx: Fix race condition with IPI setting ACOP 2012-03-07 17:06:09 +11:00
icswx_pid.c powerpc: Split ICSWX ACOP and PID processing 2011-11-25 14:11:27 +11:00
init-common.c Merge branch 'topic/ppc-kvm' into next 2017-02-14 17:18:29 +11:00
init_32.c powerpc/32: Add missing \n and switch to pr_warn() 2016-09-13 17:37:11 +10:00
init_64.c powerpc/64: Enable use of radix MMU under hypervisor on POWER9 2017-01-31 19:11:44 +11:00
mem.c powerpc/pseries: Automatically resize HPT for memory hot add/remove 2017-02-10 13:28:02 +11:00
mmap.c powerpc/mm/radix: Pick the address layout for radix config 2016-05-11 21:53:47 +10:00
mmu_context_book3s64.c powerpc/mm/iommu, vfio/spapr: Put pages on VFIO container shutdown 2016-12-02 14:38:34 +11:00
mmu_context_hash32.c powerpc: Remove power3 from comments 2014-07-28 14:10:26 +10:00
mmu_context_iommu.c powerpc/mm: Fix build break when CMA=n && SPAPR_TCE_IOMMU=y 2017-02-14 16:54:22 +11:00
mmu_context_nohash.c powerpc/mmu nohash: Convert to hotplug state machine 2016-09-06 18:30:27 +02:00
mmu_decl.h powerpc/8xx: Map IMMR area with 512k page at a fixed address 2016-07-09 02:02:48 -05:00
numa.c powerpc: Drop GPL from of_node_to_nid() export to match other arches 2017-02-10 13:28:05 +11:00
pgtable-book3e.c powerpc/mm: Make page table size a variable 2016-05-01 18:32:48 +10:00
pgtable-book3s64.c powerpc/mm: add radix__remove_section_mapping() 2017-01-31 13:54:19 +11:00
pgtable-hash64.c powerpc/mm/thp: Abstraction for THP functions 2016-05-11 21:53:57 +10:00
pgtable-radix.c Merge branch 'topic/ppc-kvm' into next 2017-02-14 17:18:29 +11:00
pgtable.c powerpc/mm: update radix__ptep_set_access_flag to not do full mm tlb flush 2016-11-28 22:44:33 +11:00
pgtable_32.c powerpc: port 64 bits pgtable_cache to 32 bits 2016-12-09 22:48:01 -06:00
pgtable_64.c Merge branch 'topic/ppc-kvm' into next 2017-02-14 17:18:29 +11:00
ppc_mmu_32.c powerpc32: refactor x_mapped_by_bats() and x_mapped_by_tlbcam() together 2016-03-11 17:18:02 -06:00
slb.c powerpc/mm: Remove long disabled SLB code 2016-04-11 20:30:40 +10:00
slb_low.S powerpc updates for 4.9 2016-10-07 20:19:31 -07:00
slice.c powerpc/mm/radix: Add checks in slice code to catch radix usage 2016-05-11 21:53:46 +10:00
subpage-prot.c powerpc/mm: Return directly after a failed __copy_from_user() in sys_subpage_prot() 2017-01-25 13:34:22 +11:00
tlb-radix.c powerpc updates for 4.10 2016-12-16 09:26:42 -08:00
tlb_hash32.c powerpc/mm: remove flush_tlb_page_nohash 2016-08-01 11:15:13 +10:00
tlb_hash64.c powerpc/mm: Hash abstraction for tlbflush routines 2016-05-01 18:33:08 +10:00
tlb_low_64e.S powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
tlb_nohash.c powerpc/8xx: Implement support of hugepages 2016-12-09 22:49:07 -06:00
tlb_nohash_low.S powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
vphn.c powerpc/vphn: parsing code rewrite 2015-03-18 10:48:59 +11:00
vphn.h powerpc/vphn: parsing code rewrite 2015-03-18 10:48:59 +11:00