diff --git a/minix/kernel/arch/i386/apic.c b/minix/kernel/arch/i386/apic.c index 39346b679..c4fa74c1e 100644 --- a/minix/kernel/arch/i386/apic.c +++ b/minix/kernel/arch/i386/apic.c @@ -442,7 +442,8 @@ static int spurious_irq_handler(irq_hook_t * UNUSED(hook)) static void apic_calibrate_clocks(unsigned cpu) { - u32_t lvtt, val, lapic_delta; + u32_t lvtt, val; + u64_t lapic_delta; u64_t tsc_delta; u64_t cpu_freq; @@ -514,7 +515,8 @@ static void apic_calibrate_clocks(unsigned cpu) lapic_delta = lapic_tctr0 - lapic_tctr1; tsc_delta = tsc1 - tsc0; - lapic_bus_freq[cpuid] = system_hz * lapic_delta / (PROBE_TICKS - 1); + lapic_bus_freq[cpuid] = make64(system_hz,0) * lapic_delta / + make64(PROBE_TICKS-1,0); BOOT_VERBOSE(printf("APIC bus freq %u MHz\n", lapic_bus_freq[cpuid] / 1000000)); cpu_freq = (tsc_delta / (PROBE_TICKS - 1)) * make64(system_hz, 0);