linux/arch/powerpc/mm
Aneesh Kumar K.V bd77c44986 powerpc/mm/radix: Use tlbiel only if we ever ran on the current cpu
Before this patch, we used tlbiel, if we ever ran only on this core.
That was mostly derived from the nohash usage of the same. But is
incorrect, the ISA 3.0 clarifies tlbiel such that:

"All TLB entries that have all of the following properties are made
invalid on the thread executing the tlbiel instruction"

ie. tlbiel only invalidates TLB entries on the current thread. So if the
mm has been used on any other thread (aka. cpu) then we must broadcast
the invalidate.

This bug could lead to invalid TLB entries if a program runs on multiple
threads of a core.

Hence use tlbiel, if we only ever ran on only the current cpu.

Fixes: 1a472c9dba ("powerpc/mm/radix: Add tlbflush routines")
Cc: stable@vger.kernel.org # v4.7+
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-10-27 21:55:13 +11:00
..
8xx_mmu.c
40x_mmu.c
44x_mmu.c
copro_fault.c powerpc/mm: Prevent unlikely crash in copro_calculate_slb() 2016-10-19 20:32:49 +11:00
dma-noncoherent.c
fault.c powerpc: Use kprobe blacklist for exception handlers 2016-09-19 10:53:54 +10:00
fsl_booke_mmu.c
hash64_4k.c powerpc/mm: Move hash table ops to a separate structure 2016-07-21 18:59:09 +10:00
hash64_64k.c powerpc/mm: Move hash table ops to a separate structure 2016-07-21 18:59:09 +10:00
hash_low_32.S ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
hash_native_64.c powerpc/mm: Speed up computation of base and actual page size for a HPTE 2016-09-09 16:14:48 +10:00
hash_utils_64.c powerpc updates for 4.9 #2 2016-10-14 11:07:42 -07:00
highmem.c
hugepage-hash64.c powerpc/mm: Move hash table ops to a separate structure 2016-07-21 18:59:09 +10:00
hugetlbpage-book3e.c
hugetlbpage-hash64.c powerpc/mm: Move hash table ops to a separate structure 2016-07-21 18:59:09 +10:00
hugetlbpage-radix.c powerpc/mm/hugetlb: Add flush_hugetlb_tlb_range 2016-08-01 11:15:13 +10:00
hugetlbpage.c powerpc: Fix usage of _PAGE_RO in hugepage 2016-09-23 07:54:22 +10:00
icswx.c
icswx.h
icswx_pid.c
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/mm: Convert early cpu/mmu feature check to use the new helpers 2016-08-01 11:15:01 +10:00
Makefile powerpc/Makefile: Drop CONFIG_WORD_SIZE for BITS 2016-09-13 17:37:06 +10:00
mem.c
mmap.c
mmu_context_book3s64.c
mmu_context_hash32.c
mmu_context_iommu.c KVM: PPC: Book3S HV: Migrate pinned pages out of CMA 2016-09-29 15:14:44 +10:00
mmu_context_nohash.c powerpc/mmu nohash: Convert to hotplug state machine 2016-09-06 18:30:27 +02:00
mmu_decl.h
numa.c powerpc: Fix numa topology console print 2016-10-19 20:35:41 +11:00
pgtable-book3e.c
pgtable-book3s64.c powerpc/64/kexec: Fix MMU cleanup on radix 2016-09-23 07:54:17 +10:00
pgtable-hash64.c
pgtable-radix.c powerpc/64/kexec: Fix MMU cleanup on radix 2016-09-23 07:54:17 +10:00
pgtable.c powerpc/mm/radix: Use different pte update sequence for different POWER9 revs 2016-09-13 17:37:10 +10:00
pgtable_32.c treewide: replace obsolete _refok by __ref 2016-08-02 17:31:41 -04:00
pgtable_64.c
ppc_mmu_32.c
slb.c
slb_low.S powerpc updates for 4.9 2016-10-07 20:19:31 -07:00
slice.c
subpage-prot.c
tlb-radix.c powerpc/mm/radix: Use tlbiel only if we ever ran on the current cpu 2016-10-27 21:55:13 +11:00
tlb_hash32.c powerpc/mm: remove flush_tlb_page_nohash 2016-08-01 11:15:13 +10:00
tlb_hash64.c
tlb_low_64e.S
tlb_nohash.c powerpc/mm: Drop multiple definition of mm_is_core_local 2016-08-01 11:15:10 +10:00
tlb_nohash_low.S
vphn.c
vphn.h