[PATCH 0/5] x86/efi: Implement FPU context save/restore

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It may be possible that EFI firmware wants to use the FPU. Thus, in such a case,
the kernel EFI runtime services need to make sure that they save and restore the
FPU context.

Additionally, several FPU internal functions require alternatives to be in place
when running. Some of the FPU context save/restore instances that this series
implements may occur early during boot; before the alternatives have run.
Several FPU internal functions are updated to use the alternatives-safe variant
of static_cpu_has. The performance penalty is negligible as the impacted
functions are not performance-critical.

In order to prepare to implement the FPU context save/restore, this series also
reworks many of the efi_call macros. The code will also be more readable and
continue to be reusable between x86_64 and i386.

BR,
Ricardo

Matt Fleming (2):
  x86/efi: Delete most of the efi_call* macros
  x86, fpu: Extend the use of static_cpu_has_safe

Ricardo Neri (3):
  x86/efi: Implement a __efi_call_virt macro
  x86/efi: Save and restore FPU context around efi_calls (x86_64)
  x86/efi: Save and restore FPU context around efi_calls (i386)

 arch/x86/boot/compressed/eboot.c       | 142 ++++++++++++++++-----------------
 arch/x86/include/asm/efi.h             |  98 ++++++++---------------
 arch/x86/include/asm/fpu-internal.h    |  10 +--
 arch/x86/platform/efi/efi.c            |  52 ++++++------
 arch/x86/platform/efi/efi_stub_64.S    |  81 +------------------
 drivers/firmware/efi/efi-stub-helper.c |  92 ++++++++++-----------
 6 files changed, 181 insertions(+), 294 deletions(-)

-- 
1.8.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-efi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux