[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH][HVM] fix multiplication overflow in hvm/pmtimer.c
Hi, Too many ACPI events (SCI) are raised on hvm because of multiplication overflow. FREQUENCE_PMTIMER=3579545 (1000000000ULL << 32) / FREQUENCE_PMTIMER = 0xae9a7b1663a pmt_cycles_until_flip =~ 0x80000000 0xae9a7b1663a*0x80000000 = overflow!!! Thanks, Kouya Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx> diff -r 80eb95dc0dd9 xen/arch/x86/hvm/pmtimer.c --- a/xen/arch/x86/hvm/pmtimer.c Thu Jun 14 18:01:42 2007 +0100 +++ b/xen/arch/x86/hvm/pmtimer.c Fri Jun 15 11:46:36 2007 +0900 @@ -97,10 +97,10 @@ static void pmt_timer_callback(void *opa pmt_cycles_until_flip = TMR_VAL_MSB - (s->pm.tmr_val & (TMR_VAL_MSB - 1)); /* Overall time between MSB flips */ - time_until_flip = (1000000000ULL << 31) / FREQUENCE_PMTIMER; + time_until_flip = (1000000000ULL << 23) / FREQUENCE_PMTIMER; /* Reduced appropriately */ - time_until_flip = (time_until_flip * pmt_cycles_until_flip) / (1ULL<<31); + time_until_flip = (time_until_flip * pmt_cycles_until_flip) >> 23; /* Wake up again near the next bit-flip */ set_timer(&s->timer, NOW() + time_until_flip + MILLISECS(1)); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |