linux/arch/powerpc/include/asm
Anton Blanchard 178f358208 powerpc: Ignore reserved field in DCSR and PVR reads and writes
IBM bit 31 (for the rest of us - bit 0) is a reserved field in the
instruction definition of mtspr and mfspr. Hardware is encouraged to
(and does) ignore it.

As a result, if userspace executes an mtspr DSCR with the reserved bit
set, we get a DSCR facility unavailable exception. The kernel fails to
match against the expected value/mask, and we silently return to
userspace to try and re-execute the same mtspr DSCR instruction. We
loop forever until the process is killed.

We should do something here, and it seems mirroring what hardware does
is the better option vs killing the process. While here, relax the
matching of mfspr PVR too.

Cc: stable@vger.kernel.org
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2017-01-20 15:21:35 +11:00
..
book3s powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
nohash powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
8xx_immap.h
Kbuild ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
accounting.h powerpc32: provide VIRT_CPU_ACCOUNTING 2016-07-09 01:43:50 -05:00
agp.h
archrandom.h powerpc: Use hardware RNG for arch_get_random_seed_* not arch_get_random_* 2015-07-23 19:52:03 +10:00
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 Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08: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 powerpc: define __smp_xxx 2016-01-12 20:46:53 +02:00
bitops.h
bootx.h
btext.h
bug.h
bugs.h
cache.h powerpc/64s: Reduce exception alignment 2016-11-14 11:11:51 +11: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 arch/powerpc: Update parameters for csum_tcpudp_magic & csum_tcpudp_nofold 2016-10-29 17:06:23 -04:00
cmpxchg.h powerpc: Fix __cmpxchg() to take a volatile ptr again 2016-11-25 14:07:50 +11:00
code-patching.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
compat.h powerpc/kernel: Add SIG_SYS support for compat tasks 2015-07-29 11:56:13 +10:00
context_tracking.h
copro.h
cpm.h QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
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 sched/cputime, powerpc: Remove cputime_to_scaled() 2016-11-15 09:51:04 +01: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 powerpc: Change places using CONFIG_KEXEC to use CONFIG_KEXEC_CORE instead. 2016-11-30 23:15:11 +11:00
delay.h
device.h powerpc/iommu: Remove dma_data union 2015-07-13 10:10:54 +10:00
disassemble.h KVM: PPC: e500: Emulate TMCFG0 TMRN register 2015-10-15 15:58:16 +11:00
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 powerpc/e6500: hw tablewalk: make sure we invalidate and write to the same tlb entry 2015-10-27 18:14:40 -05:00
exception-64s.h powerpc: Fix exception vector build with 2.23 era binutils 2016-11-12 20:12:49 +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 powerpc: EX_TABLE macro for exception tables 2016-11-14 11:11:51 +11:00
grackle.h
hardirq.h
head-64.h powerpc/64s: Reduce exception alignment 2016-11-14 11:11:51 +11:00
heathrow.h
highmem.h kmap_atomic_to_page() has no users, remove it 2015-11-09 15:11:24 -08:00
hmi.h powerpc: move hmi.c to arch/powerpc/kvm/ 2016-09-09 16:18:07 +10:00
hugetlb.h powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
hvcall.h powerpc/pseries: add definitions for new H_SIGNAL_SYS_RESET hcall 2016-11-30 23:19:59 +11: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 crypto: nx-842 - Mask XERS0 bit in return value 2015-12-17 16:42:12 +08:00
ide.h
ima.h powerpc: ima: send the kexec buffer to the next kernel 2016-12-20 09:48:44 -08:00
immap_cpm2.h
io-defs.h
io-workarounds.h
io.h powerpc: EX_TABLE macro for exception tables 2016-11-14 11:11:51 +11: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
kdebug.h
kdump.h
kexec.h powerpc: ima: send the kexec buffer to the next kernel 2016-12-20 09:48:44 -08:00
keylargo.h
kgdb.h
kmap_types.h
kprobes.h powerpc/kprobes: Invoke handlers directly 2016-11-23 22:56:25 +11:00
kvm_asm.h KVM: PPC: Book3S HV: Enable hypervisor virtualization interrupts while in guest 2016-11-24 09:24:23 +11: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: PPC: Book3S: correct width in XER handling 2015-08-22 11:16:19 +02:00
kvm_booke_hv_asm.h
kvm_fpu.h
kvm_host.h KVM: PPC: Decrease the powerpc default halt poll max value 2016-11-28 11:48:47 +11:00
kvm_para.h
kvm_ppc.h KVM: PPC: Book3S: Move prototypes for KVM functions into kvm_ppc.h 2016-12-01 14:03:46 +11: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: Change places using CONFIG_KEXEC to use CONFIG_KEXEC_CORE instead. 2016-11-30 23:15:11 +11:00
macio.h
mc146818rtc.h
mce.h
mediabay.h
mm-arch-hooks.h powerpc/mm: tracking vDSO remap 2015-06-24 17:49:41 -07:00
mman.h powerpc updates for 4.8 #2 2016-08-05 09:00:54 -04:00
mmu-8xx.h powerpc/8xx: Implement support of hugepages 2016-12-09 22:49:07 -06: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.10 2016-12-16 09:26:42 -08:00
mmu_context.h powerpc/iommu: Stop using @current in mm_iommu_xxx 2016-12-02 14:38:29 +11:00
mmzone.h powerpc: implement arch_reserved_kernel_pages 2016-10-07 18:46:28 -07:00
module.h powerpc: Build-time sort the exception table 2016-11-14 11:11:51 +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 powerpc: mpc512x: drop bogus and unused psc register bit definitions 2015-10-22 16:06:08 +02:00
mpc85xx.h
mpc5121.h powerpc/512x: add LocalPlus Bus FIFO device driver 2015-10-22 15:19:40 +02:00
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 powerpc/msi: Free the bitmap if it was slab allocated 2015-10-05 21:32:50 +11: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 powerpc/powernv: Define real-mode versions of OPAL XICS accessors 2016-11-23 10:32:11 +11: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/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11: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: Use MSR to report privilege level on P9 DD1 2017-01-18 16:15:58 +11:00
pgalloc.h powerpc/mm: Copy pgalloc (part 2) 2016-05-11 21:53:49 +10:00
pgtable-be-types.h powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
pgtable-types.h powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
pgtable.h powerpc: port 64 bits pgtable_cache to 32 bits 2016-12-09 22:48:01 -06:00
plpar_wrappers.h powerpc/pseries: add definitions for new H_SIGNAL_SYS_RESET hcall 2016-11-30 23:19:59 +11:00
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 powerpc: Ignore reserved field in DCSR and PVR reads and writes 2017-01-20 15:21:35 +11:00
ppc-pci.h powerpc/eeh: Refactor EEH PE reset functions 2016-11-22 11:57:08 +11: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: Make _ASM_NOKPROBE_SYMBOL a noop when KPROBES not defined 2016-11-14 11:11:51 +11:00
probes.h
processor.h powerpc updates for 4.10 2016-12-16 09:26:42 -08:00
prom.h powerpc/prom: Switch to using structs for ibm_architecture_vec 2016-11-30 23:19:59 +11:00
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 Merge branch 'topic/ppc-kvm' into next 2016-11-24 22:14:52 +11:00
reg_8xx.h powerpc/8xx: Implement support of hugepages 2016-12-09 22:49:07 -06: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: Change places using CONFIG_KEXEC to use CONFIG_KEXEC_CORE instead. 2016-11-30 23:15:11 +11: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 locking/core, powerpc: Implement vcpu_is_preempted(cpu) 2016-11-22 12:48:06 +01:00
spinlock_types.h
spu.h
spu_csa.h powerpc/cell: Drop support for 64K local store on 4K kernels 2015-08-18 19:29:49 +10:00
spu_info.h
spu_priv1.h
sstep.h
stackprotector.h powerpc: Initial stack protector (-fstack-protector) support 2016-11-23 22:57:15 +11:00
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 powerpc: Change syscall_get_nr() to return int 2015-07-29 11:56:13 +10:00
syscalls.h
systbl.h powerpc/kexec: Enable kexec_file_load() syscall 2016-11-30 23:15:27 +11: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 mm: add tlb_remove_check_page_size_change to track page size change 2016-12-12 18:55:07 -08: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 tracing: Have the reg function allow to fail 2016-12-09 09:13:30 -05:00
trace_clock.h powerpc/ftrace: add powerpc timebase as a trace clock source 2015-08-06 16:36:23 +10:00
tsi108.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
tsi108_irq.h
tsi108_pci.h genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
types.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
uaccess.h powerpc: Add support for relative exception tables 2016-11-14 11:11:51 +11: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/kexec: Enable kexec_file_load() syscall 2016-11-30 23:15:27 +11:00
uprobes.h
user.h
vdso.h
vdso_datapage.h powerpc: Standardise on NR_syscalls rather than __NR_syscalls. 2015-11-26 22:11:17 +11:00
vga.h
vio.h
word-at-a-time.h powerpc: EX_TABLE macro for exception tables 2016-11-14 11:11:51 +11:00
xics.h powerpc/xics: Properly set Edge/Level type and enable resend 2016-08-09 14:50:18 +10:00
xilinx_intc.h powerpc/virtex: Use generic xilinx irqchip driver 2016-11-29 09:14:50 +00:00
xilinx_pci.h
xmon.h
xor.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00