diff options
-rw-r--r-- | arch/i386/Kconfig | 2 | ||||
-rw-r--r-- | arch/i386/kernel/vmi.c | 1 | ||||
-rw-r--r-- | arch/i386/kernel/vmitime.c | 15 |
3 files changed, 2 insertions, 16 deletions
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 2f7672545fe9..e970887b9e69 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
@@ -220,7 +220,7 @@ config PARAVIRT | |||
220 | 220 | ||
221 | config VMI | 221 | config VMI |
222 | bool "VMI Paravirt-ops support" | 222 | bool "VMI Paravirt-ops support" |
223 | depends on PARAVIRT && !NO_HZ | 223 | depends on PARAVIRT |
224 | default y | 224 | default y |
225 | help | 225 | help |
226 | VMI provides a paravirtualized interface to multiple hypervisors | 226 | VMI provides a paravirtualized interface to multiple hypervisors |
diff --git a/arch/i386/kernel/vmi.c b/arch/i386/kernel/vmi.c index a8aa57e77029..30e8253e6eef 100644 --- a/arch/i386/kernel/vmi.c +++ b/arch/i386/kernel/vmi.c | |||
@@ -934,6 +934,7 @@ void __init vmi_init(void) | |||
934 | #ifdef CONFIG_X86_IO_APIC | 934 | #ifdef CONFIG_X86_IO_APIC |
935 | no_timer_check = 1; | 935 | no_timer_check = 1; |
936 | #endif | 936 | #endif |
937 | no_sync_cmos_clock = 1; | ||
937 | 938 | ||
938 | local_irq_restore(flags & X86_EFLAGS_IF); | 939 | local_irq_restore(flags & X86_EFLAGS_IF); |
939 | } | 940 | } |
diff --git a/arch/i386/kernel/vmitime.c b/arch/i386/kernel/vmitime.c index 4bb218e2eb14..d21779749838 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) | |||
153 | ts->tv_sec = wallclock; | 153 | ts->tv_sec = wallclock; |
154 | } | 154 | } |
155 | 155 | ||
156 | static void update_xtime_from_wallclock(void) | ||
157 | { | ||
158 | struct timespec ts; | ||
159 | vmi_get_wallclock_ts(&ts); | ||
160 | do_settimeofday(&ts); | ||
161 | } | ||
162 | |||
163 | unsigned long vmi_get_wallclock(void) | 156 | unsigned long vmi_get_wallclock(void) |
164 | { | 157 | { |
165 | struct timespec ts; | 158 | struct timespec ts; |
@@ -197,18 +190,10 @@ void __init vmi_time_init(void) | |||
197 | set_intr_gate(LOCAL_TIMER_VECTOR, apic_vmi_timer_interrupt); | 190 | set_intr_gate(LOCAL_TIMER_VECTOR, apic_vmi_timer_interrupt); |
198 | #endif | 191 | #endif |
199 | 192 | ||
200 | no_sync_cmos_clock = 1; | ||
201 | |||
202 | vmi_get_wallclock_ts(&xtime); | ||
203 | set_normalized_timespec(&wall_to_monotonic, | ||
204 | -xtime.tv_sec, -xtime.tv_nsec); | ||
205 | |||
206 | real_cycles_accounted_system = read_real_cycles(); | 193 | real_cycles_accounted_system = read_real_cycles(); |
207 | update_xtime_from_wallclock(); | ||
208 | per_cpu(process_times_cycles_accounted_cpu, 0) = read_available_cycles(); | 194 | per_cpu(process_times_cycles_accounted_cpu, 0) = read_available_cycles(); |
209 | 195 | ||
210 | cycles_per_sec = vmi_timer_ops.get_cycle_frequency(); | 196 | cycles_per_sec = vmi_timer_ops.get_cycle_frequency(); |
211 | |||
212 | cycles_per_jiffy = cycles_per_sec; | 197 | cycles_per_jiffy = cycles_per_sec; |
213 | (void)do_div(cycles_per_jiffy, HZ); | 198 | (void)do_div(cycles_per_jiffy, HZ); |
214 | cycles_per_alarm = cycles_per_sec; | 199 | cycles_per_alarm = cycles_per_sec; |