diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 2f7672545fe98ae0096d0249fefcf250dbdab5df..e970887b9e696b62f1ff8b8044bf7709e3a7a06b 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig @@ -220,7 +220,7 @@ config PARAVIRT config VMI bool "VMI Paravirt-ops support" - depends on PARAVIRT && !NO_HZ + depends on PARAVIRT default y help VMI provides a paravirtualized interface to multiple hypervisors diff --git a/arch/i386/kernel/vmi.c b/arch/i386/kernel/vmi.c index a8aa57e770296b0023da4f898901c788ba6e84aa..30e8253e6eefec7b85dfb993189d3af145871bcd 100644 --- a/arch/i386/kernel/vmi.c +++ b/arch/i386/kernel/vmi.c @@ -934,6 +934,7 @@ void __init vmi_init(void) #ifdef CONFIG_X86_IO_APIC no_timer_check = 1; #endif + no_sync_cmos_clock = 1; local_irq_restore(flags & X86_EFLAGS_IF); } diff --git a/arch/i386/kernel/vmitime.c b/arch/i386/kernel/vmitime.c index 4bb218e2eb14a545cbee2432486a2a4533d0fa4f..d21779749838689e7eb4971d83474f8a5fe8f9aa 100644 --- a/arch/i386/kernel/vmitime.c +++ b/arch/i386/kernel/vmitime.c @@ -153,13 +153,6 @@ static void vmi_get_wallclock_ts(struct timespec *ts) ts->tv_sec = wallclock; } -static void update_xtime_from_wallclock(void) -{ - struct timespec ts; - vmi_get_wallclock_ts(&ts); - do_settimeofday(&ts); -} - unsigned long vmi_get_wallclock(void) { struct timespec ts; @@ -197,18 +190,10 @@ void __init vmi_time_init(void) set_intr_gate(LOCAL_TIMER_VECTOR, apic_vmi_timer_interrupt); #endif - no_sync_cmos_clock = 1; - - vmi_get_wallclock_ts(&xtime); - set_normalized_timespec(&wall_to_monotonic, - -xtime.tv_sec, -xtime.tv_nsec); - real_cycles_accounted_system = read_real_cycles(); - update_xtime_from_wallclock(); per_cpu(process_times_cycles_accounted_cpu, 0) = read_available_cycles(); cycles_per_sec = vmi_timer_ops.get_cycle_frequency(); - cycles_per_jiffy = cycles_per_sec; (void)do_div(cycles_per_jiffy, HZ); cycles_per_alarm = cycles_per_sec;