Searched hist:"3 ac8ff1c475bda7174fce63230c0932454287cd5" (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/arch/powerpc/kernel/ |
H A D | traps.c | diff 3ac8ff1c475bda7174fce63230c0932454287cd5 Sun Jan 12 22:56:30 CST 2014 Paul Mackerras <paulus@samba.org> 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>
|