Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90993cdd authored by Marcelo Tosatti's avatar Marcelo Tosatti
Browse files

x86: KVM guest: merge CONFIG_KVM_CLOCK into CONFIG_KVM_GUEST



The distinction between CONFIG_KVM_CLOCK and CONFIG_KVM_GUEST is
not so clear anymore, as demonstrated by recent bugs caused by poor
handling of on/off combinations of these options.

Merge CONFIG_KVM_CLOCK into CONFIG_KVM_GUEST.

Reported-By: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent 4d8b81ab
Loading
Loading
Loading
Loading
+8 −13
Original line number Diff line number Diff line
@@ -573,23 +573,18 @@ config PARAVIRT_TIME_ACCOUNTING

source "arch/x86/xen/Kconfig"

config KVM_CLOCK
	bool "KVM paravirtualized clock"
	select PARAVIRT
	select PARAVIRT_CLOCK
	---help---
	  Turning on this option will allow you to run a paravirtualized clock
	  when running over the KVM hypervisor. Instead of relying on a PIT
	  (or probably other) emulation by the underlying device model, the host
	  provides the guest with timing infrastructure such as time of day, and
	  system time

config KVM_GUEST
	bool "KVM Guest support"
	bool "KVM Guest support (including kvmclock)"
	select PARAVIRT
	select PARAVIRT
	select PARAVIRT_CLOCK
	default y if PARAVIRT_GUEST
	---help---
	  This option enables various optimizations for running under the KVM
	  hypervisor.
	  hypervisor. It includes a paravirtualized clock, so that instead
	  of relying on a PIT (or probably other) emulation by the
	  underlying device model, the host provides the guest with
	  timing infrastructure such as time of day, and system time

source "arch/x86/lguest/Kconfig"

+2 −2
Original line number Diff line number Diff line
@@ -102,14 +102,14 @@ struct kvm_vcpu_pv_apf_data {
extern void kvmclock_init(void);
extern int kvm_register_clock(char *txt);

#ifdef CONFIG_KVM_CLOCK
#ifdef CONFIG_KVM_GUEST
bool kvm_check_and_clear_guest_paused(void);
#else
static inline bool kvm_check_and_clear_guest_paused(void)
{
	return false;
}
#endif /* CONFIG_KVMCLOCK */
#endif /* CONFIG_KVM_GUEST */

/* This instruction is vmcall.  On non-VT architectures, it will generate a
 * trap that we will then rewrite to the appropriate instruction.
+1 −2
Original line number Diff line number Diff line
@@ -81,8 +81,7 @@ obj-$(CONFIG_DEBUG_RODATA_TEST) += test_rodata.o
obj-$(CONFIG_DEBUG_NX_TEST)	+= test_nx.o
obj-$(CONFIG_DEBUG_NMI_SELFTEST) += nmi_selftest.o

obj-$(CONFIG_KVM_GUEST)		+= kvm.o
obj-$(CONFIG_KVM_CLOCK)		+= kvmclock.o
obj-$(CONFIG_KVM_GUEST)		+= kvm.o kvmclock.o
obj-$(CONFIG_PARAVIRT)		+= paravirt.o paravirt_patch_$(BITS).o
obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= paravirt-spinlocks.o
obj-$(CONFIG_PARAVIRT_CLOCK)	+= pvclock.o
+0 −2
Original line number Diff line number Diff line
@@ -397,9 +397,7 @@ void kvm_disable_steal_time(void)
#ifdef CONFIG_SMP
static void __init kvm_smp_prepare_boot_cpu(void)
{
#ifdef CONFIG_KVM_CLOCK
	WARN_ON(kvm_register_clock("primary cpu clock"));
#endif
	kvm_guest_cpu_init();
	native_smp_prepare_boot_cpu();
}
+1 −1
Original line number Diff line number Diff line
@@ -957,7 +957,7 @@ void __init setup_arch(char **cmdline_p)
	initmem_init();
	memblock_find_dma_reserve();

#ifdef CONFIG_KVM_CLOCK
#ifdef CONFIG_KVM_GUEST
	kvmclock_init();
#endif