On Fri, Mar 25, 2016 at 02:05:08AM +0000, Andre Przywara wrote: > Now that the new VGIC implementation has reached feature parity with > the old one, add the new files to the build system and add a Kconfig > option to switch between the two versions. > We set the default to the new version to get maximum test coverage, > in case people experience problems they can switch back to the old > behaviour if needed. > > Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> > --- > arch/arm/kvm/Kconfig | 7 +++++++ > arch/arm/kvm/Makefile | 10 ++++++++++ > arch/arm64/kvm/Kconfig | 7 +++++++ > arch/arm64/kvm/Makefile | 10 ++++++++++ > 4 files changed, 34 insertions(+) > > diff --git a/arch/arm/kvm/Kconfig b/arch/arm/kvm/Kconfig > index 95a0005..02abfff 100644 > --- a/arch/arm/kvm/Kconfig > +++ b/arch/arm/kvm/Kconfig > @@ -46,6 +46,13 @@ config KVM_ARM_HOST > ---help--- > Provides host support for ARM processors. > > +config KVM_NEW_VGIC > + bool "New VGIC implementation" > + depends on KVM > + default y > + ---help--- > + uses the new VGIC implementation > + I had imagined we'd name it in the reverse, so the option would have been CONFIG_KVM_VGIC_LEGACY, but I guess the net effect should be the same, assuming most people just go with the default anyway. Thanks, -Christoffer > source drivers/vhost/Kconfig > > endif # VIRTUALIZATION > diff --git a/arch/arm/kvm/Makefile b/arch/arm/kvm/Makefile > index eb1bf43..aa7d724 100644 > --- a/arch/arm/kvm/Makefile > +++ b/arch/arm/kvm/Makefile > @@ -21,7 +21,17 @@ obj-$(CONFIG_KVM_ARM_HOST) += hyp/ > obj-y += kvm-arm.o init.o interrupts.o > obj-y += arm.o handle_exit.o guest.o mmu.o emulate.o reset.o > obj-y += coproc.o coproc_a15.o coproc_a7.o mmio.o psci.o perf.o > + > +ifeq ($(CONFIG_KVM_NEW_VGIC),y) > +obj-y += $(KVM)/arm/vgic/vgic.o > +obj-y += $(KVM)/arm/vgic/vgic_init.o > +obj-y += $(KVM)/arm/vgic/vgic_irqfd.o > +obj-y += $(KVM)/arm/vgic/vgic-v2.o > +obj-y += $(KVM)/arm/vgic/vgic_mmio.o > +obj-y += $(KVM)/arm/vgic/vgic_kvm_device.o > +else > obj-y += $(KVM)/arm/vgic.o > obj-y += $(KVM)/arm/vgic-v2.o > obj-y += $(KVM)/arm/vgic-v2-emul.o > +endif > obj-y += $(KVM)/arm/arch_timer.o > diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig > index de7450d..3f0e1ce 100644 > --- a/arch/arm64/kvm/Kconfig > +++ b/arch/arm64/kvm/Kconfig > @@ -55,6 +55,13 @@ config KVM_ARM_PMU > Adds support for a virtual Performance Monitoring Unit (PMU) in > virtual machines. > > +config KVM_NEW_VGIC > + bool "New VGIC implementation" > + depends on KVM > + default y > + ---help--- > + uses the new VGIC implementation > + > source drivers/vhost/Kconfig > > endif # VIRTUALIZATION > diff --git a/arch/arm64/kvm/Makefile b/arch/arm64/kvm/Makefile > index 122cff4..2f5d431 100644 > --- a/arch/arm64/kvm/Makefile > +++ b/arch/arm64/kvm/Makefile > @@ -20,10 +20,20 @@ kvm-$(CONFIG_KVM_ARM_HOST) += emulate.o inject_fault.o regmap.o > kvm-$(CONFIG_KVM_ARM_HOST) += hyp.o hyp-init.o handle_exit.o > kvm-$(CONFIG_KVM_ARM_HOST) += guest.o debug.o reset.o sys_regs.o sys_regs_generic_v8.o > > +ifeq ($(CONFIG_KVM_NEW_VGIC),y) > +kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic.o > +kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic_init.o > +kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic_irqfd.o > +kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic-v2.o > +kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic-v3.o > +kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic_mmio.o > +kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic/vgic_kvm_device.o > +else > kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic.o > kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic-v2.o > kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic-v2-emul.o > kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic-v3.o > kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic-v3-emul.o > +endif > kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/arch_timer.o > kvm-$(CONFIG_KVM_ARM_PMU) += $(KVM)/arm/pmu.o > -- > 2.7.3 > > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html