linux/arch/powerpc/kernel
Cyril Bur 172f7aaa75 powerpc/tm: Add TM Unavailable Exception
If the kernel disables transactional memory (TM) and userspace still
tries TM related actions (TM instructions or TM SPR accesses) TM aware
hardware will cause the kernel to take a facility unavailable
exception.

Add checks for the exception being caused by illegal TM access in
userspace.

Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
[mpe: Rewrite comment entirely, bugs in it are mine]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-10-04 20:33:17 +11:00
..
vdso32 powerpc/vdso: Fix build rules to rebuild vdsos correctly 2016-08-10 23:04:12 +10:00
vdso64 powerpc/vdso64: Use double word compare on pointers 2016-09-29 15:17:57 +10:00
.gitignore
align.c powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
asm-offsets.c powerpc: tm: Rename transct_(*) to ck(\1)_state 2016-10-04 20:33:16 +11:00
audit.c
btext.c powerpc/mm: Use a helper for finding pte bits mapping I/O area 2016-05-01 18:32:32 +10:00
cacheinfo.c
cacheinfo.h
compat_audit.c
cpu_setup_6xx.S powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
cpu_setup_44x.S
cpu_setup_fsl_booke.S powerpc/cache: add cache flush operation for various e500 2016-03-04 23:44:51 -06:00
cpu_setup_pa6t.S
cpu_setup_power.S powerpc/irq: Add support for HV virtualization interrupts 2016-07-17 16:42:44 +10:00
cpu_setup_ppc970.S
cputable.c powerpc/book3s: Add a cpu table entry for different POWER9 revs 2016-09-13 17:37:09 +10:00
crash.c powerpc/crash: Rearrange loop condition to avoid out of bounds array access 2016-07-14 20:26:22 +10:00
crash_dump.c
dbell.c
dma-iommu.c dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
dma-swiotlb.c
dma.c dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
eeh.c powerpc/eeh: Quieten EEH message when no adapters are found 2016-10-04 16:11:48 +11:00
eeh_cache.c powerpc/eeh: Fix pr_debug()s in eeh_cache.c 2016-07-08 22:09:50 +10:00
eeh_dev.c powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
eeh_driver.c powerpc/eeh: Skip finding bus until after failure reporting 2016-09-23 07:54:21 +10:00
eeh_event.c powerpc: sparse: static-ify some things 2016-04-12 21:05:18 +10:00
eeh_pe.c powerpc/eeh: Export eeh_pe_state_mark() 2016-09-29 14:51:04 +10:00
eeh_sysfs.c
entry_32.S powerpc/32: Remove CLR_TOP32 2016-09-23 07:54:22 +10:00
entry_64.S powerpc/64s: Optimise MSR handling in exception handling 2016-09-20 15:56:45 +10:00
epapr_hcalls.S
epapr_paravirt.c
exceptions-64e.S powerpc32: provide VIRT_CPU_ACCOUNTING 2016-07-09 01:43:50 -05:00
exceptions-64s.S powerpc/64s: Remove unused exception code, small cleanups 2016-10-04 13:07:16 +11:00
fadump.c powerpc/fadump: Set core e_flags using kernel's ELF ABI version 2016-09-13 17:36:01 +10:00
firmware.c
fpu.S powerpc: Remove do_load_up_transact_{fpu,altivec} 2016-10-04 20:33:16 +11:00
fsl_booke_entry_mapping.S
ftrace.c powerpc/ftrace: Separate the heuristics for checking call sites 2016-07-21 20:10:37 +10:00
head_8xx.S powerpc/32: Remove CLR_TOP32 2016-09-23 07:54:22 +10:00
head_32.S powerpc/32: Remove CLR_TOP32 2016-09-23 07:54:22 +10:00
head_40x.S
head_44x.S powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
head_64.S powerpc: Use gas sections for arranging exception vectors 2016-10-04 13:06:56 +11:00
head_booke.h
head_fsl_booke.S powerpc/cache: add cache flush operation for various e500 2016-03-04 23:44:51 -06:00
hw_breakpoint.c powerpc: Use kprobe blacklist for exception handlers 2016-09-19 10:53:54 +10:00
ibmebus.c powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
idle.c
idle_6xx.S
idle_book3e.S
idle_book3s.S powerpc/powernv: Move IDLE_STATE_ENTER_SEQ macro to cpuidle.h 2016-08-09 14:50:20 +10:00
idle_e500.S
idle_power4.S
io-workarounds.c
io.c
iomap.c powerpc: add io{read,write}64 accessors 2016-05-31 16:41:52 +08:00
iommu.c dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
irq.c powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
isa-bridge.c powerpc/mm: Use a helper for finding pte bits mapping I/O area 2016-05-01 18:32:32 +10:00
jump_label.c
kgdb.c powerpc: Fix kgdb on little endian ppc64le 2016-02-18 00:03:26 +11:00
kprobes.c powerpc: migrate exception table users off module.h and onto extable.h 2016-08-22 11:09:33 +10:00
kvm.c
kvm_emul.S
l2cr_6xx.S
legacy_serial.c powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
machine_kexec.c powerpc: Update of_remove_property() call sites to remove null checking 2016-05-11 21:54:04 +10:00
machine_kexec_32.c
machine_kexec_64.c powerpc/64/kexec: Remove BookE special default_machine_kexec_prepare() 2016-09-23 07:54:18 +10:00
Makefile powerpc/Makefile: Drop CONFIG_WORD_SIZE for BITS 2016-09-13 17:37:06 +10:00
mce.c powerpc/book3s: Fix MCE console messages for unrecoverable MCE. 2016-08-09 19:46:54 +10:00
mce_power.c powerpc/mm/radix: Fix CONFIG_PPC_MMU_STD_64 typo 2016-05-11 21:53:59 +10:00
misc.S
misc_32.S powerpc/kernel: Use kprobe blacklist for asm functions 2016-09-19 10:53:55 +10:00
misc_64.S powerpc/64/kexec: Copy image with MMU off when possible 2016-09-23 07:54:18 +10:00
module.c powerpc/sparse: Make a bunch of things static 2016-09-13 17:35:47 +10:00
module_32.c powerpc/module: Only try to generate the ftrace_caller() stub once 2016-03-07 14:53:53 +11:00
module_64.c powerpc/modules: Never restore r2 for a mprofile-kernel style mcount() call 2016-07-21 20:10:42 +10:00
msi.c
nvram_64.c powerpc/nvram: Fix an incorrect partition merge 2016-09-20 16:15:42 +10:00
of_platform.c
paca.c powerpc/mm: Convert early cpu/mmu feature check to use the new helpers 2016-08-01 11:15:01 +10:00
pci-common.c powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
pci-hotplug.c powerpc/pci: Don't scan empty slot 2016-05-11 21:54:26 +10:00
pci_32.c
pci_64.c powerpc fixes for 4.7 #5 2016-07-15 14:57:47 +10:00
pci_dn.c powerpc/pci: Fix build with PCI_IOV=y and EEH=n 2016-07-07 16:33:27 +10:00
pci_of_scan.c powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
pmc.c
ppc32.h
ppc_ksyms.c powerpc32: move xxxxx_dcache_range() functions inline 2016-03-11 17:20:12 -06:00
ppc_ksyms_32.c powerpc32: Remove clear_pages() and define clear_page() inline 2016-03-11 17:20:11 -06:00
ppc_save_regs.S
proc_powerpc.c
process.c powerpc: tm: Rename transct_(*) to ck(\1)_state 2016-10-04 20:33:16 +11:00
prom.c powerpc/mm: Make MMU_FTR_RADIX a MMU family feature 2016-08-01 11:14:57 +10:00
prom_init.c powerpc/pasemi: Fix device_type of Nemo SB600 node. 2016-09-13 17:37:08 +10:00
prom_init_check.sh
prom_parse.c
ptrace.c powerpc: tm: Rename transct_(*) to ck(\1)_state 2016-10-04 20:33:16 +11:00
ptrace32.c
reloc_32.S
reloc_64.S
rtas-proc.c powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
rtas-rtc.c
rtas.c powerpc: Make ppc_md.{halt, restart} __noreturn 2016-07-14 21:12:06 +10:00
rtas_flash.c
rtas_pci.c
rtasd.c powerpc/pseries: start rtasd before PCI probing 2016-07-08 19:22:15 +10:00
setup-common.c powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
setup.h powerpc: Merge 32-bit and 64-bit setup_arch() 2016-07-21 19:17:46 +10:00
setup_32.c powerpc/32: Fix crash during static key init 2016-08-10 19:41:58 +10:00
setup_64.c powerpc/32: Fix crash during static key init 2016-08-10 19:41:58 +10:00
signal.c powerpc: signals: Stop using current in signal code 2016-10-04 16:43:07 +11:00
signal.h powerpc: tm: Rename transct_(*) to ck(\1)_state 2016-10-04 20:33:16 +11:00
signal_32.c powerpc: tm: Rename transct_(*) to ck(\1)_state 2016-10-04 20:33:16 +11:00
signal_64.c powerpc: tm: Rename transct_(*) to ck(\1)_state 2016-10-04 20:33:16 +11:00
smp-tbsync.c
smp.c powerpc, hotplug: Avoid to touch non-existent cpumasks. 2016-08-22 11:09:33 +10:00
stacktrace.c powerpc: Implement save_stack_trace_regs() to enable kprobe stack tracing 2016-01-11 14:27:28 +11:00
suspend.c
swsusp.c powerpc/mm: Abstraction for switch_mmu_context() 2016-05-01 18:33:04 +10:00
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
swsusp_booke.S
sys_ppc32.c
syscalls.c powerpc/sparse: Add more assembler prototypes 2016-09-13 17:36:58 +10:00
sysfs.c powerpc/sparse: make some things static 2016-06-16 22:23:11 +10:00
systbl.S
systbl_chk.c
systbl_chk.sh
tau_6xx.c
time.c powerpc/sparse: Add more assembler prototypes 2016-09-13 17:36:58 +10:00
tm.S powerpc: tm: Rename transct_(*) to ck(\1)_state 2016-10-04 20:33:16 +11:00
trace_clock.c
traps.c powerpc/tm: Add TM Unavailable Exception 2016-10-04 20:33:17 +11:00
udbg.c
udbg_16550.c
uprobes.c
vdso.c powerpc/vdso: Add missing include file 2016-08-09 16:52:00 +10:00
vecemu.c
vector.S powerpc: Remove do_load_up_transact_{fpu,altivec} 2016-10-04 20:33:16 +11:00
vio.c dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
vmlinux.lds.S powerpc: Use gas sections for arranging exception vectors 2016-10-04 13:06:56 +11:00