Star64_linux/arch/powerpc/include/asm
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
..
book3s powerpc updates for 4.9 2016-10-07 20:19:31 -07:00
nohash powerpc/mm/radix: Use different pte update sequence for different POWER9 revs 2016-09-13 17:37:10 +10:00
8xx_immap.h
accounting.h powerpc32: provide VIRT_CPU_ACCOUNTING 2016-07-09 01:43:50 -05:00
agp.h
archrandom.h
asm-compat.h powerpc/ebpf/jit: Implement JIT compiler for extended BPF 2016-06-24 15:17:57 +10:00
asm-offsets.h
asm-prototypes.h powerpc: Use kprobe blacklist for exception handlers 2016-09-19 10:53:54 +10:00
async_tx.h
atomic.h powerpc: Remove static branch prediction in atomic{, 64}_add_unless 2016-10-04 16:13:13 +11:00
backlight.h
barrier.h
bitops.h
bootx.h
btext.h
bug.h
bugs.h
cache.h powerpc: add inline functions for cache related instructions 2016-03-11 17:20:11 -06:00
cacheflush.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
cell-pmu.h
cell-regs.h
checksum.h powerpc: optimise csum_partial() call when len is constant 2016-03-09 10:44:18 -06:00
cmpxchg.h
code-patching.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
compat.h
context_tracking.h
copro.h
cpm.h
cpm1.h
cpm2.h
cpu_has_feature.h powerpc/kernel: Fix size of NUM_CPU_FTR_KEYS on 32-bit 2016-09-12 12:48:28 +10:00
cpufeature.h powerpc: Add module autoloading based on CPU features 2016-07-21 20:33:57 +10:00
cpuidle.h powerpc: Convert cmp to cmpd in idle enter sequence 2016-10-22 08:44:38 +11:00
cputable.h powerpc/8xx: add dedicated machine check handler 2016-09-25 02:38:55 -05:00
cputhreads.h powerpc: cputhreads: Add missing include file 2016-08-22 11:09:33 +10:00
cputime.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
current.h
dbdma.h
dbell.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
dcr-generic.h
dcr-mmio.h
dcr-native.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
dcr-regs.h
dcr.h
debug.h
delay.h
device.h
disassemble.h
dma-mapping.h dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
dma.h
edac.h
eeh.h powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
eeh_event.h
ehv_pic.h
elf.h
emergency-restart.h
emulated_ops.h
epapr_hcalls.h
exception-64e.h
exception-64s.h powerpc: Use gas sections for arranging exception vectors 2016-10-04 13:06:56 +11:00
exec.h
fadump.h powerpc/fadump: Set core e_flags using kernel's ELF ABI version 2016-09-13 17:36:01 +10:00
fb.h
feature-fixups.h powerpc/32: Fix crash during static key init 2016-08-10 19:41:58 +10:00
firmware.h powerpc: Move FW feature probing out of pseries probe() 2016-07-21 18:56:13 +10:00
fixmap.h powerpc/8xx: Fix vaddr for IMMR early remap 2016-07-09 02:02:48 -05:00
floppy.h
fs_pd.h
fsl_85xx_cache_sram.h
fsl_gtm.h
fsl_hcalls.h
fsl_lbc.h
fsl_pamu_stash.h
fsl_pm.h powerpc/rcpm: add RCPM driver 2016-03-04 23:50:27 -06:00
ftrace.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
futex.h
grackle.h
hardirq.h
head-64.h powerpc: Use gas sections for arranging exception vectors 2016-10-04 13:06:56 +11:00
heathrow.h
highmem.h
hmi.h powerpc: move hmi.c to arch/powerpc/kvm/ 2016-09-09 16:18:07 +10:00
hugetlb.h powerpc/mm: Use hugetlb flush functions 2016-08-01 11:15:09 +10:00
hvcall.h powerpc: Put exception configuration in a common place 2016-07-21 18:56:31 +10:00
hvconsole.h
hvcserver.h
hvsi.h
hw_breakpoint.h
hw_irq.h powerpc/8xx: use SPRN_EIE and SPRN_EID to enable/disable interrupts 2016-09-25 02:38:53 -05:00
hydra.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
i8259.h
ibmebus.h
icswx.h
ide.h
immap_cpm2.h
io-defs.h
io-workarounds.h
io.h powerpc: Add simple cache inhibited MMIO accessors 2016-09-09 16:17:59 +10:00
io_event_irq.h
iommu.h dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
ipic.h
irq.h
irq_work.h
irqflags.h
jump_label.h powerpc updates for 4.8 #2 2016-08-05 09:00:54 -04:00
Kbuild ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
kdebug.h
kdump.h
kexec.h
keylargo.h
kgdb.h
kmap_types.h
kprobes.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
kvm_asm.h KVM: PPC: Book3S HV: Complete passthrough interrupt in host 2016-09-12 10:12:07 +10:00
kvm_book3s.h KVM: PPC: Book3S: Treat VTB as a per-subcore register, not per-thread 2016-09-27 14:41:39 +10:00
kvm_book3s_32.h
kvm_book3s_64.h KVM: PPC: Book3S: Remove duplicate setting of the B field in tlbie 2016-09-27 15:14:29 +10:00
kvm_book3s_asm.h powerpc/powernv: Add platform support for stop instruction 2016-07-15 20:18:41 +10:00
kvm_booke.h
kvm_booke_hv_asm.h
kvm_fpu.h
kvm_host.h KVM: PPC: Book3S: Treat VTB as a per-subcore register, not per-thread 2016-09-27 14:41:39 +10:00
kvm_para.h
kvm_ppc.h KVM: PPC: Book3S HV: Set server for passed-through interrupts 2016-09-12 10:12:28 +10:00
libata-portmap.h libata: remove unused definitions from <asm/libata-portmap.h> 2016-09-22 11:50:19 -04:00
linkage.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
livepatch.h powerpc/livepatch: Add livepatch stack to struct thread_info 2016-04-14 15:47:06 +10:00
local.h
lppaca.h
lv1call.h
machdep.h powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
macio.h
mc146818rtc.h
mce.h
mediabay.h
mm-arch-hooks.h
mman.h powerpc updates for 4.8 #2 2016-08-05 09:00:54 -04:00
mmu-8xx.h powerpc/8xx: Fix vaddr for IMMR early remap 2016-07-09 02:02:48 -05:00
mmu-40x.h
mmu-44x.h
mmu-book3e.h powerpc/64/kexec: Fix MMU cleanup on radix 2016-09-23 07:54:17 +10:00
mmu.h powerpc updates for 4.9 2016-10-07 20:19:31 -07:00
mmu_context.h powerpc: During context switch, check before setting mm_cpumask 2016-10-04 16:12:16 +11:00
mmzone.h powerpc: implement arch_reserved_kernel_pages 2016-10-07 18:46:28 -07:00
module.h Merge branch 'topic/mprofile-kernel' into next 2016-03-11 11:20:15 +11:00
mpc5xxx.h
mpc6xx.h
mpc52xx.h powerpc: Make ppc_md.{halt, restart} __noreturn 2016-07-14 21:12:06 +10:00
mpc52xx_psc.h
mpc85xx.h
mpc5121.h
mpc8260.h
mpic.h
mpic_msgr.h powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
mpic_timer.h
msi_bitmap.h
mutex.h locking/mutex: Optimize mutex_trylock() fast-path 2016-06-08 15:17:01 +02:00
nmi.h
nvram.h
ohare.h
opal-api.h powerpc/opal: Add real mode call wrappers 2016-07-17 16:42:46 +10:00
opal.h KVM: PPC: Book3S HV: Set server for passed-through interrupts 2016-09-12 10:12:28 +10:00
oprofile_impl.h
paca.h powerpc: move hmi.c to arch/powerpc/kvm/ 2016-09-09 16:18:07 +10:00
page.h powerpc/32: Remove RELOCATABLE_PPC32 2016-07-19 20:17:07 +10:00
page_32.h powerpc32: Remove clear_pages() and define clear_page() inline 2016-03-11 17:20:11 -06:00
page_64.h powerpc/mm/slice: Remove slice_mm_new_context() 2016-05-11 21:54:00 +10:00
parport.h powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
pasemi_dma.h
pci-bridge.h powerpc/pseries: use pci_host_bridge.release_fn() to kfree(phb) 2016-08-22 11:09:33 +10:00
pci.h PCI: Unify pci_resource_to_user() declarations 2016-06-17 14:43:34 -05:00
percpu.h
perf_event.h
perf_event_fsl_emb.h
perf_event_server.h powerpc/perf: Export Power8 generic and cache events to sysfs 2016-03-10 22:56:05 +11:00
pgalloc.h powerpc/mm: Copy pgalloc (part 2) 2016-05-11 21:53:49 +10:00
pgtable-be-types.h powerpc/mm: use _raw variant of page table accessors 2016-07-17 16:42:51 +10:00
pgtable-types.h powerpc/mm: Add pte_xchg() helper 2016-05-01 18:32:16 +10:00
pgtable.h powerpc/mm: check for irq disabled() only if DEBUG_VM is enabled 2016-07-26 16:19:19 -07:00
plpar_wrappers.h
pmac_feature.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
pnv-pci.h powerpc updates for 4.9 2016-10-07 20:19:31 -07:00
ppc-opcode.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next 2016-10-11 20:07:56 +11:00
ppc-pci.h powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
ppc4xx.h powerpc: Make ppc_md.{halt, restart} __noreturn 2016-07-14 21:12:06 +10:00
ppc4xx_ocm.h
ppc_asm.h powerpc/32: Remove CLR_TOP32 2016-09-23 07:54:22 +10:00
probes.h
processor.h powerpc: tm: Enable transactional memory (TM) lazily for userspace 2016-10-04 20:33:17 +11:00
prom.h
ps3.h powerpc/64: Move MMU backend selection out of platform code 2016-07-21 18:56:38 +10:00
ps3av.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
ps3gpu.h
ps3stor.h
pte-common.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
ptrace.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
reg.h powerpc updates for 4.9 #2 2016-10-14 11:07:42 -07:00
reg_8xx.h powerpc/8xx: use SPRN_EIE and SPRN_EID to enable/disable interrupts 2016-09-25 02:38:53 -05:00
reg_a2.h
reg_booke.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
reg_fsl_emb.h
rheap.h
rio.h
rtas.h powerpc: Merge 32-bit and 64-bit setup_arch() 2016-07-21 19:17:46 +10:00
runlatch.h
scom.h
seccomp.h
sections.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
serial.h
setjmp.h
setup.h powerpc: Put exception configuration in a common place 2016-07-21 18:56:31 +10:00
sfp-machine.h
shmparam.h
signal.h powerpc: signals: Stop using current in signal code 2016-10-04 16:43:07 +11:00
smp.h powerpc: Merge 32-bit and 64-bit setup_arch() 2016-07-21 19:17:46 +10:00
smu.h powerpc/pmac: Remove early allocation of the SMU command buffer 2016-07-21 18:56:38 +10:00
sparsemem.h
spinlock.h powerpc/spinlock: Fix spin_unlock_wait() 2016-06-14 16:05:44 +10:00
spinlock_types.h
spu.h
spu_csa.h
spu_info.h
spu_priv1.h
sstep.h
string.h powerpc: Remove assembly versions of strcpy, strcat, strlen and strcmp 2016-06-14 13:58:25 +10:00
swab.h
swiotlb.h
switch_to.h powerpc/ptrace: Fix coredump since ptrace TM changes 2016-08-10 16:34:20 +10:00
synch.h powerpc: Factor do_feature_fixup calls 2016-07-21 18:51:42 +10:00
syscall.h
syscalls.h
systbl.h powerpc: wire up preadv2 and pwritev2 syscalls 2016-04-27 16:47:55 +10:00
tce.h powerpc/powernv/pci: Remove SWINV constants and obsolete TCE code 2016-07-17 16:42:47 +10:00
termios.h
thread_info.h signal: consolidate {TS,TLF}_RESTORE_SIGMASK code 2016-08-02 19:35:23 -04:00
time.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
timex.h
tlb.h powerpc/mm/radix: Use tlbiel only if we ever ran on the current cpu 2016-10-27 21:55:13 +11:00
tlbflush.h powerpc/mm: remove flush_tlb_page_nohash 2016-08-01 11:15:13 +10:00
tm.h powerpc: Remove do_load_up_transact_{fpu,altivec} 2016-10-04 20:33:16 +11:00
topology.h
trace.h
trace_clock.h
tsi108.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
tsi108_irq.h
tsi108_pci.h
types.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
uaccess.h Merge branch 'uaccess-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-09-14 09:35:05 -07:00
udbg.h
uic.h
unaligned.h
uninorth.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
unistd.h powerpc: Ignore the pkey system calls for now 2016-10-19 20:36:24 +11:00
uprobes.h
user.h
vdso.h
vdso_datapage.h
vga.h
vio.h
word-at-a-time.h powerpc: Fix bad inline asm constraint in create_zero_mask() 2016-05-02 11:10:25 +10:00
xics.h powerpc/xics: Properly set Edge/Level type and enable resend 2016-08-09 14:50:18 +10:00
xilinx_intc.h
xilinx_pci.h
xmon.h
xor.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00