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

Commit ca3f1017 authored by Gleb Natapov's avatar Gleb Natapov Committed by Avi Kivity
Browse files

KVM paravirt: Move kvm_smp_prepare_boot_cpu() from kvmclock.c to kvm.c.



Async PF also needs to hook into smp_prepare_boot_cpu so move the hook
into generic code.

Acked-by: default avatarRik van Riel <riel@redhat.com>
Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent 49c7754c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ struct kvm_mmu_op_release_pt {
#include <asm/processor.h>

extern void kvmclock_init(void);
extern int kvm_register_clock(char *txt);


/* This instruction is vmcall.  On non-VT architectures, it will generate a
+11 −0
Original line number Diff line number Diff line
@@ -231,10 +231,21 @@ static void __init paravirt_ops_setup(void)
#endif
}

#ifdef CONFIG_SMP
static void __init kvm_smp_prepare_boot_cpu(void)
{
	WARN_ON(kvm_register_clock("primary cpu clock"));
	native_smp_prepare_boot_cpu();
}
#endif

void __init kvm_guest_init(void)
{
	if (!kvm_para_available())
		return;

	paravirt_ops_setup();
#ifdef CONFIG_SMP
	smp_ops.smp_prepare_boot_cpu = kvm_smp_prepare_boot_cpu;
#endif
}
+1 −12
Original line number Diff line number Diff line
@@ -125,7 +125,7 @@ static struct clocksource kvm_clock = {
	.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};

static int kvm_register_clock(char *txt)
int kvm_register_clock(char *txt)
{
	int cpu = smp_processor_id();
	int low, high, ret;
@@ -152,14 +152,6 @@ static void __cpuinit kvm_setup_secondary_clock(void)
}
#endif

#ifdef CONFIG_SMP
static void __init kvm_smp_prepare_boot_cpu(void)
{
	WARN_ON(kvm_register_clock("primary cpu clock"));
	native_smp_prepare_boot_cpu();
}
#endif

/*
 * After the clock is registered, the host will keep writing to the
 * registered memory location. If the guest happens to shutdown, this memory
@@ -205,9 +197,6 @@ void __init kvmclock_init(void)
#ifdef CONFIG_X86_LOCAL_APIC
	x86_cpuinit.setup_percpu_clockev =
		kvm_setup_secondary_clock;
#endif
#ifdef CONFIG_SMP
	smp_ops.smp_prepare_boot_cpu = kvm_smp_prepare_boot_cpu;
#endif
	machine_ops.shutdown  = kvm_shutdown;
#ifdef CONFIG_KEXEC