mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-28 06:44:36 -05:00
The Secure AVIC feature provides SEV-SNP guests hardware acceleration for performance sensitive APIC accesses while securely managing the guest-owned APIC state through the use of a private APIC backing page. This helps prevent the hypervisor from generating unexpected interrupts for a vCPU or otherwise violate architectural assumptions around the APIC behavior. Add a new x2APIC driver that will serve as the base of the Secure AVIC support. It is initially the same as the x2APIC physical driver (without IPI callbacks), but will be modified as features are implemented. As the new driver does not implement Secure AVIC features yet, if the hypervisor sets the Secure AVIC bit in SEV_STATUS, maintain the existing behavior to enforce the guest termination. [ bp: Massage commit message. ] Co-developed-by: Kishon Vijay Abraham I <kvijayab@amd.com> Signed-off-by: Kishon Vijay Abraham I <kvijayab@amd.com> Signed-off-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Tianyu Lan <tiala@microsoft.com> Link: https://lore.kernel.org/20250828070334.208401-2-Neeraj.Upadhyay@amd.com
29 lines
907 B
Makefile
29 lines
907 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for local APIC drivers and for the IO-APIC code
|
|
#
|
|
|
|
# Leads to non-deterministic coverage that is not a function of syscall inputs.
|
|
# In particular, smp_apic_timer_interrupt() is called in random places.
|
|
KCOV_INSTRUMENT := n
|
|
|
|
obj-$(CONFIG_X86_LOCAL_APIC) += apic.o apic_common.o apic_noop.o ipi.o vector.o init.o
|
|
obj-y += hw_nmi.o
|
|
|
|
obj-$(CONFIG_X86_IO_APIC) += io_apic.o
|
|
obj-$(CONFIG_PCI_MSI) += msi.o
|
|
obj-$(CONFIG_SMP) += ipi.o
|
|
|
|
ifeq ($(CONFIG_X86_64),y)
|
|
# APIC probe will depend on the listing order here
|
|
obj-$(CONFIG_X86_NUMACHIP) += apic_numachip.o
|
|
obj-$(CONFIG_X86_UV) += x2apic_uv_x.o
|
|
obj-$(CONFIG_AMD_SECURE_AVIC) += x2apic_savic.o
|
|
obj-$(CONFIG_X86_X2APIC) += x2apic_phys.o
|
|
obj-$(CONFIG_X86_X2APIC) += x2apic_cluster.o
|
|
obj-y += apic_flat_64.o
|
|
endif
|
|
|
|
# For 32bit, probe_32 need to be listed last
|
|
obj-$(CONFIG_X86_LOCAL_APIC) += probe_$(BITS).o
|