On Mon, 2017-05-08 at 07:16:26 UTC, Michael Neuling wrote: > In this commit: > commit dc3106690b20305c3df06b42456fe386dd632ac9 > Author: Cyril Bur <cyril...@gmail.com> > powerpc: tm: Always use fp_state and vr_state to store live registers > > A section of code was removed that copied the current state to > checkpointed state. This should not have been removed. > > When an FP unavailable is taken inside a transaction, we need to abort > the transaction. This is because at the time of the tbegin, the FP > state is bogus so the state stored in the checkpointed registers is > incorrect. To fix this, we treclaim (to get the checkpointed GPRs) and > then copy the thread_struct FP live state into the checkpointed > state. We then trecheckpoint so that the FP state is correctly > restored into the CPU. > > The coping of the FP registers from live to checkpointed is what was > missing. > > This simplifies the logic slightly from the original patch. > tm_reclaim_thread() will now always write the checkpointed FP > state. Either the checkpointed FP statte will be written as part of > the actual treclaim (in tm.S), or it'll be a copy of the live > state. Which one we use is based on MSR[FP] from userspace. > > Similarly for VMX. > > CC: <sta...@vger.kernel.org> # 4.9+ > Signed-off-by: Michael Neuling <mi...@neuling.org> > Reviewed-by: cyril...@gmail.com
Applied to powerpc fixes, thanks. https://git.kernel.org/powerpc/c/f48e91e87e67b56bef63393d1a02c6 cheers