diff --git a/hw/ppc/ppc_booke.c b/hw/ppc/ppc_booke.c index 56c4196735..b421620708 100644 --- a/hw/ppc/ppc_booke.c +++ b/hw/ppc/ppc_booke.c @@ -174,6 +174,12 @@ static void booke_update_fixed_timer(CPUPPCState *env, if (*next == now) { (*next)++; + } else { + /* + * There's no point to fake any granularity that's more fine grained + * than milliseconds. Anything beyond that just overloads the system. + */ + *next = MAX(*next, now + SCALE_MS); } /* Fire the next timer */