x86/fred: FRED entry/exit and dispatch code
authorH. Peter Anvin (Intel) <hpa@zytor.com>
Sat, 9 Dec 2023 21:42:14 +0000 (13:42 -0800)
committerBorislav Petkov (AMD) <bp@alien8.de>
Wed, 31 Jan 2024 21:02:31 +0000 (22:02 +0100)
commit14619d912b658ecd9573fb88400d3830a29cadcb
tree8de248a587245122eba294060ec9ec98c98b0d2e
parentffa4901f0e004e1a0a4e18a2452a1fcc27277cc0
x86/fred: FRED entry/exit and dispatch code

The code to actually handle kernel and event entry/exit using
FRED. It is split up into two files thus:

 - entry_64_fred.S contains the actual entrypoints and exit code, and
   saves and restores registers.

 - entry_fred.c contains the two-level event dispatch code for FRED.
   The first-level dispatch is on the event type, and the second-level
   is on the event vector.

  [ bp: Fold in an allmodconfig clang build fix:
    https://lore.kernel.org/r/20240129064521.5168-1-xin3.li@intel.com
    and a CONFIG_IA32_EMULATION=n build fix:
    https://lore.kernel.org/r/20240127093728.1323-3-xin3.li@intel.com]

Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Originally-by: Megha Dey <megha.dey@intel.com>
Co-developed-by: Xin Li <xin3.li@intel.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Signed-off-by: Xin Li <xin3.li@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Tested-by: Shan Kang <shan.kang@intel.com>
Link: https://lore.kernel.org/r/20231209214214.2932-1-xin3.li@intel.com
arch/x86/entry/Makefile
arch/x86/entry/entry_64_fred.S [new file with mode: 0644]
arch/x86/entry/entry_fred.c [new file with mode: 0644]
arch/x86/include/asm/asm-prototypes.h
arch/x86/include/asm/fred.h
arch/x86/include/asm/ia32.h