Skip to content

Instantly share code, notes, and snippets.

@vsrinivas
Created August 1, 2023 20:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vsrinivas/644156dfacd725fcd9e57c8fae7656d9 to your computer and use it in GitHub Desktop.
Save vsrinivas/644156dfacd725fcd9e57c8fae7656d9 to your computer and use it in GitHub Desktop.
diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig
index 129f66fe7a11..87ff1e5f354d 100644
--- a/arch/x86/kvm/Kconfig
+++ b/arch/x86/kvm/Kconfig
@@ -140,4 +140,7 @@ config KVM_XEN
config KVM_EXTERNAL_WRITE_TRACKING
bool
+config KVM_MODULE_VERSION
+ int
+
endif # VIRTUALIZATION
diff --git a/arch/x86/kvm/Makefile b/arch/x86/kvm/Makefile
index 088dd38b0dfb..9ed8c797ac76 100644
--- a/arch/x86/kvm/Makefile
+++ b/arch/x86/kvm/Makefile
@@ -7,12 +7,17 @@ ifeq ($(CONFIG_FRAME_POINTER),y)
OBJECT_FILES_NON_STANDARD_vmenter.o := y
endif
-X=a
+ifdef CONFIG_KVM_MODULE_VERSION
+X=$(CONFIG_KVM_MODULE_VERSION)
+else
+X=
+endif
+
include $(srctree)/virt/kvm/Makefile.kvm
xvac-y := vac.o svm/vac.o vmx/vac.o $(KVM)/vac.o
-kvm-$(X)-y += x86.o emulate.o i8259.o irq.o lapic.o \
+kvm$(X)-y += x86.o emulate.o i8259.o irq.o lapic.o \
i8254.o ioapic.o irq_comm.o cpuid.o pmu.o mtrr.o \
hyperv.o debugfs.o mmu/mmu.o mmu/page_track.o \
mmu/spte.o
@@ -21,23 +26,23 @@ ifdef CONFIG_HYPERV
kvm-y += kvm_onhyperv.o
endif
-kvm-$(X)-$(CONFIG_X86_64) += mmu/tdp_iter.o mmu/tdp_mmu.o
-kvm-$(X)-$(CONFIG_KVM_XEN) += xen.o
-kvm-$(X)-$(CONFIG_KVM_SMM) += smm.o
+kvm$(X)-$(CONFIG_X86_64) += mmu/tdp_iter.o mmu/tdp_mmu.o
+kvm$(X)-$(CONFIG_KVM_XEN) += xen.o
+kvm$(X)-$(CONFIG_KVM_SMM) += smm.o
-kvm-$(X)-$(CONFIG_KVM_INTEL) += vmx/vmx.o vmx/vmenter.o vmx/pmu_intel.o vmx/vmcs12.o \
+kvm$(X)-$(CONFIG_KVM_INTEL) += vmx/vmx.o vmx/vmenter.o vmx/pmu_intel.o vmx/vmcs12.o \
vmx/hyperv.o vmx/nested.o vmx/posted_intr.o
-kvm-$(X)-$(CONFIG_X86_SGX_KVM) += vmx/sgx.o
+kvm$(X)-$(CONFIG_X86_SGX_KVM) += vmx/sgx.o
-kvm-$(X)-$(CONFIG_KVM_AMD) += svm/svm.o svm/vmenter.o svm/pmu.o svm/nested.o svm/avic.o \
+kvm$(X)-$(CONFIG_KVM_AMD) += svm/svm.o svm/vmenter.o svm/pmu.o svm/nested.o svm/avic.o \
svm/sev.o svm/hyperv.o
ifdef CONFIG_HYPERV
-kvm-$(CONFIG_KVM_AMD) += svm/svm_onhyperv.o
+kvm$(X)-$(CONFIG_KVM_AMD) += svm/svm_onhyperv.o
endif
obj-$(CONFIG_VAC) += xvac.o
-obj-$(CONFIG_KVM) += kvm-$(X).o
+obj-$(CONFIG_KVM) += kvm$(X).o
AFLAGS_svm/vmenter.o := -iquote $(obj)
$(obj)/svm/vmenter.o: $(obj)/kvm-asm-offsets.h
diff --git a/virt/kvm/Makefile.kvm b/virt/kvm/Makefile.kvm
index 488019f088e7..a69139d72414 100644
--- a/virt/kvm/Makefile.kvm
+++ b/virt/kvm/Makefile.kvm
@@ -5,10 +5,10 @@
KVM ?= ../../../virt/kvm
-kvm-$(X)-y := $(KVM)/kvm_main.o $(KVM)/eventfd.o $(KVM)/binary_stats.o
-kvm-$(X)-$(CONFIG_KVM_VFIO) += $(KVM)/vfio.o
-kvm-$(X)-$(CONFIG_KVM_MMIO) += $(KVM)/coalesced_mmio.o
-kvm-$(X)-$(CONFIG_KVM_ASYNC_PF) += $(KVM)/async_pf.o
-kvm-$(X)-$(CONFIG_HAVE_KVM_IRQ_ROUTING) += $(KVM)/irqchip.o
-kvm-$(X)-$(CONFIG_HAVE_KVM_DIRTY_RING) += $(KVM)/dirty_ring.o
-kvm-$(X)-$(CONFIG_HAVE_KVM_PFNCACHE) += $(KVM)/pfncache.o
+kvm$(X)-y := $(KVM)/kvm_main.o $(KVM)/eventfd.o $(KVM)/binary_stats.o
+kvm$(X)-$(CONFIG_KVM_VFIO) += $(KVM)/vfio.o
+kvm$(X)-$(CONFIG_KVM_MMIO) += $(KVM)/coalesced_mmio.o
+kvm$(X)-$(CONFIG_KVM_ASYNC_PF) += $(KVM)/async_pf.o
+kvm$(X)-$(CONFIG_HAVE_KVM_IRQ_ROUTING) += $(KVM)/irqchip.o
+kvm$(X)-$(CONFIG_HAVE_KVM_DIRTY_RING) += $(KVM)/dirty_ring.o
+kvm$(X)-$(CONFIG_HAVE_KVM_PFNCACHE) += $(KVM)/pfncache.o
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 13fc48aa264a..4e33f5769604 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -5815,8 +5815,11 @@ int kvm_init(unsigned vcpu_size, unsigned vcpu_align, struct module *module)
if (WARN_ON_ONCE(r))
goto err_vfio;
- // XXX: VAC: seqno?
- kvm_dev.name = kasprintf(GFP_KERNEL, "kvm%d", get_random_u8());
+#ifdef CONFIG_KVM_MODULE_VERSION
+ kvm_dev.name = kasprintf(GFP_KERNEL, "kvm%d", CONFIG_KVM_MODULE_VERSION);
+#else
+ kvm_dev.name = "kvm";
+#endif
/*
* Registration _must_ be the very last thing done, as this exposes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment