Patch "powerpc: Add check_if_tm_restore_required() to giveup_all()" has been added to the 4.8-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
powerpc: Add check_if_tm_restore_required() to giveup_all()
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
powerpc-add-check_if_tm_restore_required-to-giveup_all.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
b0f16b46988fde02a1e32078f66a3059d7e53bfcMon Sep 17 00:00:00 2001
From: Cyril Bur <[email protected]>
Date: Fri, 23 Sep 2016 16:18:09 +1000
Subject: powerpc: Add check_if_tm_restore_required() to giveup_all()
From: Cyril Bur <[email protected]>
commit b0f16b46988fde02a1e32078f66a3059d7e53bfc upstream.
giveup_all() causes FPU/VMX/VSX facilities to be disabled in a threads MSR. If the thread performing the giveup was transactional, the kernel must record which facilities were in use before the giveup as the thread must have these facilities re-enabled on return to userspace.
Quoted 1 line
Quoted 1 line
From
process.c:
/*
* This is called if we are on the way out to userspace and the
* TIF_RESTORE_TM flag is set. It checks if we need to reload
* FP and/or vector state and does so if necessary.
* If userspace is inside a transaction (whether active or
* suspended) and FP/VMX/VSX instructions have ever been enabled
* inside that transaction, then we have to keep them enabled
* and keep the FP/VMX/VSX state loaded while ever the transaction
* continues. The reason is that if we didn't, and subsequently
* got a FP/VMX/VSX unavailable interrupt inside a transaction,
* we don't know whether it's the same transaction, and thus we
* don't know which of the checkpointed state and the transactional
* state to use.
*/
Calling check_if_tm_restore_required() will set TIF_RESTORE_TM and save the MSR if needed.
--- arch/powerpc/kernel/process.c | 1 + 1 file changed, 1 insertion(+)
arch/powerpc/kernel/process.c +1 -0
@@ -445,6 +445,7 @@ void giveup_all(struct task_struct *tsk)return ;msr_check_and_set (msr_all_available); +check_if_tm_restore_required (tsk);#ifdef CONFIG_PPC_FPU if (usermsr &MSR_FP )
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/powerpc-add-check_if_tm_restore_required-to-giveup_all.patch queue-4.8/powerpc-always-restore-fpu-vec-vsx-if-hardware-transactional-memory-in-use.patch