diff --git a/src/arch/x86_shared/device/tsc.rs b/src/arch/x86_shared/device/tsc.rs index d4ae8ec413..030ac79908 100644 --- a/src/arch/x86_shared/device/tsc.rs +++ b/src/arch/x86_shared/device/tsc.rs @@ -69,9 +69,8 @@ pub fn monotonic_absolute() -> Option { if cur_version & 1 == 1 { continue; } - let elapsed_ticks = x86::time::rdtsc() - .checked_sub(addr_of!((*ptr).tsc_timestamp).read_volatile()) - .unwrap(); + let elapsed_ticks = + x86::time::rdtsc().saturating_sub(addr_of!((*ptr).tsc_timestamp).read_volatile()); let tsc_shift = addr_of!((*ptr).tsc_shift).read_volatile(); let elapsed = if tsc_shift >= 0 { elapsed_ticks.checked_shl(tsc_shift as u32).unwrap()