diff options
Diffstat (limited to 'meta-steppeeagle/recipes-kernel/linux/linux-yocto/0052-yocto-amd-clear-exceptions-in-AMD-FXSAVE-workaround.patch')
-rw-r--r-- | meta-steppeeagle/recipes-kernel/linux/linux-yocto/0052-yocto-amd-clear-exceptions-in-AMD-FXSAVE-workaround.patch | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/meta-steppeeagle/recipes-kernel/linux/linux-yocto/0052-yocto-amd-clear-exceptions-in-AMD-FXSAVE-workaround.patch b/meta-steppeeagle/recipes-kernel/linux/linux-yocto/0052-yocto-amd-clear-exceptions-in-AMD-FXSAVE-workaround.patch deleted file mode 100644 index ccc0d73a..00000000 --- a/meta-steppeeagle/recipes-kernel/linux/linux-yocto/0052-yocto-amd-clear-exceptions-in-AMD-FXSAVE-workaround.patch +++ /dev/null @@ -1,34 +0,0 @@ -Backport of commit id 26bef1318adc1b3a530ecc807ef99346db2aa8b0 to kernel 3.12 - -Before we do an EMMS in the AMD FXSAVE information leak workaround we -need to clear any pending exceptions, otherwise we trap with a -floating-point exception inside this code. - -Reported-by: halfdog <me@halfdog.net> -Tested-by: Borislav Petkov <bp@suse.de> -Link: http://lkml.kernel.org/r/CA%2B55aFxQnY_PCG_n4=0w-VG=YLXL-yr7oMxyy0WU2gCBAf3ydg@mail.gmail.com -Signed-off-by: H. Peter Anvin <hpa@zytor.com> -Signed-off-by: Arindam Nath <arindam.nath@amd.com> -diff -Naur a/arch/x86/include/asm/fpu-internal.h b/arch/x86/include/asm/fpu-internal.h ---- a/arch/x86/include/asm/fpu-internal.h 2013-11-04 05:11:51.000000000 +0530 -+++ b/arch/x86/include/asm/fpu-internal.h 2014-04-09 16:51:26.665126690 +0530 -@@ -293,12 +293,13 @@ - /* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception - is pending. Clear the x87 state here by setting it to fixed - values. "m" is a random variable that should be in L1 */ -- alternative_input( -- ASM_NOP8 ASM_NOP2, -- "emms\n\t" /* clear stack tags */ -- "fildl %P[addr]", /* set F?P to defined value */ -- X86_FEATURE_FXSAVE_LEAK, -- [addr] "m" (tsk->thread.fpu.has_fpu)); -+ if (unlikely(static_cpu_has(X86_FEATURE_FXSAVE_LEAK))) { -+ asm volatile( -+ "fnclex\n\t" -+ "emms\n\t" -+ "fildl %P[addr]" /* set F?P to defined value */ -+ : : [addr] "m" (tsk->thread.fpu.has_fpu)); -+ } - - return fpu_restore_checking(&tsk->thread.fpu); - } |