diff --git a/minix/kernel/arch/i386/arch_clock.c b/minix/kernel/arch/i386/arch_clock.c index 8573e42f7..54959324c 100644 --- a/minix/kernel/arch/i386/arch_clock.c +++ b/minix/kernel/arch/i386/arch_clock.c @@ -434,7 +434,11 @@ get_cpu_ticks(unsigned int cpu, uint64_t ticks[CPUSTATES]) { int i; - /* TODO: make this inter-CPU safe! */ - for (i = 0; i < CPUSTATES; i++) - ticks[i] = tsc_per_state[cpu][i] / tsc_per_tick[cpu]; + for (i = 0; i < CPUSTATES; i++) { + /* Avoid divide by 0. */ + if (tsc_per_tick[cpu]) + ticks[i] = tsc_per_state[cpu][i] / tsc_per_tick[cpu]; + else + ticks[i] = 0; + } }