linux-stable/arch/powerpc/kernel
Cyril Bur e909fb83d3 powerpc: Never giveup a reclaimed thread when enabling kernel {fp, altivec, vsx}
After a thread is reclaimed from its active or suspended transactional
state the checkpointed state exists on CPU, this state (along with the
live/transactional state) has been saved in its entirety by the
reclaiming process.

There exists a sequence of events that would cause the kernel to call
one of enable_kernel_fp(), enable_kernel_altivec() or
enable_kernel_vsx() after a thread has been reclaimed. These functions
save away any user state on the CPU so that the kernel can use the
registers. Not only is this saving away unnecessary at this point, it
is actually incorrect. It causes a save of the checkpointed state to
the live structures within the thread struct thus destroying the true
live state for that thread.

Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-10-04 16:43:07 +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/8xx: Force VIRT_IMMR_BASE to be a positive number 2016-07-09 03:26:53 -05: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 powerpc/iommu: Support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask 2015-07-13 10:10:55 +10:00
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: Add the ability to save FPU without giving it up 2016-03-02 23:34:49 +11:00
fsl_booke_entry_mapping.S powerpc/fsl: Force coherent memory on e500mc derivatives 2015-08-07 23:00:01 -05:00
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 powerpc/mm: Differentiate between hugetlb and THP during page walk 2015-10-12 15:30:09 +11:00
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 jump_label: Rename JUMP_LABEL_{EN,DIS}ABLE to JUMP_LABEL_{JMP,NOP} 2015-08-03 11:34:12 +02:00
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 powerpc: Remove redundant breaks 2015-08-06 15:10:20 +10:00
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: Never giveup a reclaimed thread when enabling kernel {fp, altivec, vsx} 2016-10-04 16:43:07 +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/ptrace: Fix cppcheck issue in gpr32_set_common/gpr32_get_common() 2016-09-13 17:37:12 +10: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: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
signal.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
signal_32.c powerpc: Set used_(vsr|vr|spe) in sigreturn path when MSR bits are active 2016-09-13 17:37:12 +10:00
signal_64.c powerpc: Set used_(vsr|vr|spe) in sigreturn path when MSR bits are active 2016-09-13 17:37:12 +10: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 powerpc: Standardise on NR_syscalls rather than __NR_syscalls. 2015-11-26 22:11:17 +11:00
systbl_chk.sh powerpc: Standardise on NR_syscalls rather than __NR_syscalls. 2015-11-26 22:11:17 +11:00
tau_6xx.c
time.c powerpc/sparse: Add more assembler prototypes 2016-09-13 17:36:58 +10:00
tm.S powerpc/tm: Fix stack pointer corruption in __tm_recheckpoint() 2016-07-15 15:00:18 +10:00
trace_clock.c powerpc/ftrace: add powerpc timebase as a trace clock source 2015-08-06 16:36:23 +10:00
traps.c powerpc: Use kprobe blacklist for exception handlers 2016-09-19 10:53:54 +10: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: Improve comment explaining why we modify VRSAVE 2016-07-26 14:16:19 +10: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