diff --git a/sys/i386/xen/clock.c b/sys/i386/xen/clock.c index ee574f2bed6a..3b4b6f3b8a19 100644 --- a/sys/i386/xen/clock.c +++ b/sys/i386/xen/clock.c @@ -315,7 +315,10 @@ clkintr(void *arg) processed_system_time += (delta / NS_PER_TICK) * NS_PER_TICK; per_cpu(processed_system_time, cpu) += (delta_cpu / NS_PER_TICK) * NS_PER_TICK; } - hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + if (PCPU_GET(cpuid) == 0) + hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame)); + else + hardclock_cpu(TRAPF_USERMODE(frame)); /* * Take synchronised time from Xen once a minute if we're not