mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-08 15:04:45 +00:00
ea4290d77b
kvm.ko is nothing but library code shared by kvm-intel.ko and kvm-amd.ko.
It provides no functionality on its own and it is unnecessary unless one
of the vendor-specific module is compiled. In particular, /dev/kvm is
not created until one of kvm-intel.ko or kvm-amd.ko is loaded.
Use CONFIG_KVM to decide if it is built-in or a module, but use the
vendor-specific modules for the actual decision on whether to build it.
This also fixes a build failure when CONFIG_KVM_INTEL and CONFIG_KVM_AMD
are both disabled. The cpu_emergency_register_virt_callback() function
is called from kvm.ko, but it is only defined if at least one of
CONFIG_KVM_INTEL and CONFIG_KVM_AMD is provided.
Fixes: 590b09b1d8
("KVM: x86: Register "emergency disable" callbacks when virt is enabled")
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
50 lines
1.4 KiB
Makefile
50 lines
1.4 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
ccflags-y += -I $(srctree)/arch/x86/kvm
|
|
ccflags-$(CONFIG_KVM_WERROR) += -Werror
|
|
|
|
include $(srctree)/virt/kvm/Makefile.kvm
|
|
|
|
kvm-y += x86.o emulate.o i8259.o irq.o lapic.o \
|
|
i8254.o ioapic.o irq_comm.o cpuid.o pmu.o mtrr.o \
|
|
debugfs.o mmu/mmu.o mmu/page_track.o \
|
|
mmu/spte.o
|
|
|
|
kvm-$(CONFIG_X86_64) += mmu/tdp_iter.o mmu/tdp_mmu.o
|
|
kvm-$(CONFIG_KVM_HYPERV) += hyperv.o
|
|
kvm-$(CONFIG_KVM_XEN) += xen.o
|
|
kvm-$(CONFIG_KVM_SMM) += smm.o
|
|
|
|
kvm-intel-y += vmx/vmx.o vmx/vmenter.o vmx/pmu_intel.o vmx/vmcs12.o \
|
|
vmx/nested.o vmx/posted_intr.o vmx/main.o
|
|
|
|
kvm-intel-$(CONFIG_X86_SGX_KVM) += vmx/sgx.o
|
|
kvm-intel-$(CONFIG_KVM_HYPERV) += vmx/hyperv.o vmx/hyperv_evmcs.o
|
|
|
|
kvm-amd-y += svm/svm.o svm/vmenter.o svm/pmu.o svm/nested.o svm/avic.o
|
|
|
|
kvm-amd-$(CONFIG_KVM_AMD_SEV) += svm/sev.o
|
|
kvm-amd-$(CONFIG_KVM_HYPERV) += svm/hyperv.o
|
|
|
|
ifdef CONFIG_HYPERV
|
|
kvm-y += kvm_onhyperv.o
|
|
kvm-intel-y += vmx/vmx_onhyperv.o vmx/hyperv_evmcs.o
|
|
kvm-amd-y += svm/svm_onhyperv.o
|
|
endif
|
|
|
|
obj-$(CONFIG_KVM_X86) += kvm.o
|
|
obj-$(CONFIG_KVM_INTEL) += kvm-intel.o
|
|
obj-$(CONFIG_KVM_AMD) += kvm-amd.o
|
|
|
|
AFLAGS_svm/vmenter.o := -iquote $(obj)
|
|
$(obj)/svm/vmenter.o: $(obj)/kvm-asm-offsets.h
|
|
|
|
AFLAGS_vmx/vmenter.o := -iquote $(obj)
|
|
$(obj)/vmx/vmenter.o: $(obj)/kvm-asm-offsets.h
|
|
|
|
$(obj)/kvm-asm-offsets.h: $(obj)/kvm-asm-offsets.s FORCE
|
|
$(call filechk,offsets,__KVM_ASM_OFFSETS_H__)
|
|
|
|
targets += kvm-asm-offsets.s
|
|
clean-files += kvm-asm-offsets.h
|