linux/arch/x86
Kirill A. Shutemov f4116bfc44 x86/tdx: Allow 32-bit emulation by default
32-bit emulation was disabled on TDX to prevent a possible attack by
a VMM injecting an interrupt on vector 0x80.

Now that int80_emulation() has a check for external interrupts the
limitation can be lifted.

To distinguish software interrupts from external ones, int80_emulation()
checks the APIC ISR bit relevant to the 0x80 vector. For
software interrupts, this bit will be 0.

On TDX, the VAPIC state (including ISR) is protected and cannot be
manipulated by the VMM. The ISR bit is set by the microcode flow during
the handling of posted interrupts.

[ dhansen: more changelog tweaks ]

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de>
Cc: <stable@vger.kernel.org> # v6.0+
2023-12-07 09:51:29 -08:00
..
boot * Refactor and clean up TDX hypercall/module call infrastructure 2023-11-01 10:28:32 -10:00
coco x86/tdx: Allow 32-bit emulation by default 2023-12-07 09:51:29 -08:00
configs hardening updates for v6.7-rc1 2023-10-30 19:09:55 -10:00
crypto crypto: x86/nhpoly1305 - implement ->digest 2023-10-20 13:39:25 +08:00
entry x86/entry: Do not allow external 0x80 interrupts 2023-12-07 09:51:29 -08:00
events perf/x86/intel: Correct incorrect 'or' operation for PMU capabilities 2023-11-21 13:44:36 +01:00
hyperv hyperv-fixes for 6.7-rc3 2023-11-22 09:56:26 -08:00
ia32
include x86/entry: Convert INT 0x80 emulation to IDTENTRY 2023-12-07 09:51:29 -08:00
kernel x86/entry: Convert INT 0x80 emulation to IDTENTRY 2023-12-07 09:51:29 -08:00
kvm Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
lib x86 assembly code improvements for v6.7 are: 2023-10-30 14:18:00 -10:00
math-emu x86/fpu: Include asm/fpu/regset.h 2023-05-18 11:56:18 -07:00
mm x86/coco: Disable 32-bit emulation by default on TDX and SEV 2023-12-07 09:51:10 -08:00
net bpf: Disable exceptions when CONFIG_UNWINDER_FRAME_POINTER=y 2023-09-19 02:07:36 -07:00
pci x86/PCI: Avoid PME from D3hot/D3cold for AMD Rembrandt and Phoenix USB4 2023-10-06 09:09:47 -05:00
platform x86/platform/uv: Annotate struct uv_rtc_timer_head with __counted_by 2023-09-24 12:02:58 +02:00
power x86/topology: Remove CPU0 hotplug option 2023-05-15 13:44:49 +02:00
purgatory x86/purgatory: Remove LTO flags 2023-09-17 09:49:03 +02:00
ras
realmode x86/realmode: Make stack lock work in trampoline_compat() 2023-05-30 14:11:47 +02:00
tools ELF: fix all "Elf" typos 2023-04-08 13:45:37 -07:00
um UML: remove unused cmd_vdso_install 2023-10-18 17:16:09 +09:00
video fbdev: Replace fb_pgprotect() with pgprot_framebuffer() 2023-10-12 09:20:46 +02:00
virt x86/virt/tdx: Make TDX_MODULE_CALL handle SEAMCALL #UD and #GP 2023-09-12 16:30:27 -07:00
xen x86/entry: Convert INT 0x80 emulation to IDTENTRY 2023-12-07 09:51:29 -08:00
.gitignore
Kbuild
Kconfig Major microcode loader restructuring, cleanup and improvements by Thomas 2023-11-04 08:46:37 -10:00
Kconfig.assembler x86/shstk: Add Kconfig option for shadow stack 2023-07-11 14:12:18 -07:00
Kconfig.cpu x86/cpu: Remove X86_FEATURE_NAMES 2023-05-15 20:03:08 +02:00
Kconfig.debug docs: move x86 documentation into Documentation/arch/ 2023-03-30 12:58:51 -06:00
Makefile Kbuild updates for v6.7 2023-11-04 08:07:19 -10:00
Makefile_32.cpu
Makefile.postlink kbuild: remove ARCH_POSTLINK from module builds 2023-10-28 21:10:08 +09:00
Makefile.um um: Only disable SSE on clang to work around old GCC bugs 2023-04-04 09:57:05 +02:00