diff options
Diffstat (limited to 'kernels-testing/linux-libre-xen/0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch')
-rw-r--r-- | kernels-testing/linux-libre-xen/0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/kernels-testing/linux-libre-xen/0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch b/kernels-testing/linux-libre-xen/0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch deleted file mode 100644 index 8cef84635..000000000 --- a/kernels-testing/linux-libre-xen/0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 885bad1e5f32bbf30787ead9578f8174047e6904 Mon Sep 17 00:00:00 2001 -From: Yu-cheng Yu <yu-cheng.yu@intel.com> -Date: Thu, 17 Nov 2016 09:11:35 -0800 -Subject: [PATCH] x86/fpu: Fix invalid FPU ptrace state after execve() - -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. - -Reported-by: Robert O'Callahan <robert@ocallahan.org> -Signed-off-by: Yu-cheng Yu <yu-cheng.yu@intel.com> -Cc: Andy Lutomirski <luto@kernel.org> -Cc: Borislav Petkov <bp@suse.de> -Cc: David Hansen <dave.hansen@linux.intel.com> -Cc: Fenghua Yu <fenghua.yu@intel.com> -Cc: Linus Torvalds <torvalds@linux-foundation.org> -Cc: Peter Zijlstra <peterz@infradead.org> -Cc: Ravi V. Shankar <ravi.v.shankar@intel.com> -Cc: Thomas Gleixner <tglx@linutronix.de> -Link: http://lkml.kernel.org/r/1479402695-6553-1-git-send-email-yu-cheng.yu@intel.com -Signed-off-by: Ingo Molnar <mingo@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/x86/kernel/fpu/core.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c -index 3fc03a09a93b1710..c289e2f4a6e5b464 100644 ---- a/arch/x86/kernel/fpu/core.c -+++ b/arch/x86/kernel/fpu/core.c -@@ -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(); - } - } --- -2.10.2 - |