Patch "x86/fpu: Fix invalid FPU ptrace state after execve()" 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
x86/fpu: Fix invalid FPU ptrace state after execve()
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:
x86-fpu-fix-invalid-fpu-ptrace-state-after-execve.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
b22cbe404a9cc3c7949e380fa1861e31934c8978Mon Sep 17 00:00:00 2001
From: Yu-cheng Yu <[email protected]>
Date: Thu, 17 Nov 2016 09:11:35 -0800
Subject: x86/fpu: Fix invalid FPU ptrace state after execve()
From: Yu-cheng Yu <[email protected]>
commit b22cbe404a9cc3c7949e380fa1861e31934c8978 upstream.
Robert O'Callahan reported that after an execve PTRACE_GETREGSET NT_X86_XSTATE continues to return the pre-exec register values until the exec'ed task modifies FPU state.
The test code is at:
https://bugzilla.redhat.com/attachment.cgi?id=1164286.
What is happening is fpu__clear() does not properly clear fpstate. Fix it by doing just that.
--- arch/x86/kernel/fpu/core.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
arch/x86/kernel/fpu/core.c +8 -8
@@ -517,14 +517,14 @@ void fpu__clear(struct fpu *fpu) {WARN_ON_FPU (fpu != ¤t->thread.fpu);/* Almost certainly an anomaly */ -if (!use_eager_fpu () || !static_cpu_has (X86_FEATURE_FPU )) { -/* FPU state will be reallocated lazily at the first use. */ -fpu__drop (fpu); - }else { -if (!fpu->fpstate_active) { -fpu__activate_curr (fpu); -user_fpu_begin (); - } +fpu__drop (fpu); + +/* +* Make sure fpstate is cleared and initialized. +*/ +if (static_cpu_has (X86_FEATURE_FPU )) { +fpu__activate_curr (fpu); +user_fpu_begin ();copy_init_fpstate_to_fpregs (); } }
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/x86-fpu-fix-invalid-fpu-ptrace-state-after-execve.patch