|
|
|
|
|
|
|
|
|
|
xen-devel
[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
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-devel] [PATCH][HVM] fix multiplication overflow in hvm/pmtimer.c,
Kouya Shimura <=
|
|
|
|
|