On Sat, Apr 19, 2014 at 03:50:44PM -0700, tip-bot for Ricardo Neri wrote: > Commit-ID: de05764e0b2a3d9559e099a2e134f8cef4500fdd > Gitweb: http://git.kernel.org/tip/de05764e0b2a3d9559e099a2e134f8cef4500fdd > Author: Ricardo Neri <ricardo.neri-calderon@xxxxxxxxxxxxxxx> > AuthorDate: Thu, 27 Mar 2014 15:10:42 -0700 > Committer: Matt Fleming <matt.fleming@xxxxxxxxx> > CommitDate: Thu, 17 Apr 2014 13:26:32 +0100 > > x86/efi: Save and restore FPU context around efi_calls (x86_64) > > Do a complete FPU context save/restore around the EFI calls. This required > as runtime EFI firmware may potentially use the FPU. > > This change covers only the x86_64 configuration. > > Signed-off-by: Ricardo Neri <ricardo.neri-calderon@xxxxxxxxxxxxxxx> > Cc: Borislav Petkov <bp@xxxxxxx> > Signed-off-by: Matt Fleming <matt.fleming@xxxxxxxxx> > --- > arch/x86/include/asm/efi.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h > index 19292e7..0b19187 100644 > --- a/arch/x86/include/asm/efi.h > +++ b/arch/x86/include/asm/efi.h > @@ -1,6 +1,7 @@ > #ifndef _ASM_X86_EFI_H > #define _ASM_X86_EFI_H > > +#include <asm/i387.h> > /* > * We map the EFI regions needed for runtime services non-contiguously, > * with preserved alignment on virtual addresses starting from -4G down > @@ -54,7 +55,9 @@ extern u64 asmlinkage efi_call(void *fp, ...); > \ > efi_sync_low_kernel_mappings(); \ > preempt_disable(); \ > + __kernel_fpu_begin(); \ > __s = efi_call((void *)efi.systab->runtime->f, __VA_ARGS__); \ > + __kernel_fpu_end(); \ > preempt_enable(); \ I guess you can use the kernel_fpu_begin/end() variants here (i.e., without the "__") which disable and enable preemption and thus drop the preempt_* calls: efi_sync_low_kernel_mappings(); kernel_fpu_begin(); __s = efi_call((void *)efi.systab->runtime->f, __VA_ARGS__); kernel_fpu_end(); __s; I'm not sure about the WARN_ON_ONCE(!irq_fpu_usable()); thing in kernel_fpu_begin() though, I guess it wouldn't hurt... -- Regards/Gruss, Boris. Sent from a fat crate under my desk. Formatting is fine. -- -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |