summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/process.c
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2014-01-13 15:56:30 +1100
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-01-15 13:59:14 +1100
commit3ac8ff1c475bda7174fce63230c0932454287cd5 (patch)
tree080d06818982dfad75939133faa4ac34be6f348d /arch/powerpc/kernel/process.c
parentd31626f70b6103f4d9153b75d07e0e8795728cc9 (diff)
downloadlinux-3ac8ff1c475bda7174fce63230c0932454287cd5.tar.gz
linux-3ac8ff1c475bda7174fce63230c0932454287cd5.tar.bz2
linux-3ac8ff1c475bda7174fce63230c0932454287cd5.zip
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>
Diffstat (limited to 'arch/powerpc/kernel/process.c')
0 files changed, 0 insertions, 0 deletions