linux/arch/powerpc
Paul Mackerras 3ac8ff1c47 powerpc: Fix transactional FP/VMX/VSX unavailable handlers
Currently, if a process starts a transaction and then takes an
exception because the FPU, VMX or VSX unit is unavailable to it,
we end up corrupting any FP/VMX/VSX state that was valid before
the interrupt.  For example, if the process starts a transaction
with the FPU available to it but VMX unavailable, and then does
a VMX instruction inside the transaction, the FP state gets
corrupted.

Loading up the desired state generally involves doing a reclaim
and a recheckpoint.  To avoid corrupting already-valid state, we have
to be careful not to reload that state from the thread_struct
between the reclaim and the recheckpoint (since the thread_struct
values are stale by now), and we have to reload that state from
the transact_fp/vr arrays after the recheckpoint to get back the
current transactional values saved there by the reclaim.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2014-01-15 13:59:14 +11:00
..
boot Merge branch 'merge' into next 2013-12-30 15:19:31 +11:00
configs powerpc: add SATA_MV to ppc64_defconfig 2014-01-15 13:58:48 +11:00
crypto
include powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11:00
kernel powerpc: Fix transactional FP/VMX/VSX unavailable handlers 2014-01-15 13:59:14 +11:00
kvm powerpc/book3s: Decode and save machine check event. 2013-12-05 16:05:20 +11:00
lib powerpc: Add vr save/restore functions 2014-01-15 13:46:43 +11:00
math-emu
mm powerpc: Make add_system_ram_resources() __init 2014-01-15 13:58:52 +11:00
net Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2013-11-12 14:34:19 +09:00
oprofile powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
perf
platforms pseries/cpuidle: Remove redundant call to ppc64_runlatch_off() in cpu idle routines 2014-01-15 13:58:56 +11:00
sysdev powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
xmon powerpc/book3s: Introduce exclusive emergency stack for machine check exception. 2013-12-05 16:02:05 +11:00
Kconfig powerpc: Remove unused REDBOOT Kconfig parameter 2013-12-30 14:17:00 +11:00
Kconfig.debug
Makefile powerpc: Fix error when cross building TAGS & cscope 2013-11-25 11:49:11 +11:00
relocs_check.pl