vlapic: Fix one_shot argument passed to create_period_time()
PATCH 1/1 vlapic: Fix one_shot argument passed to create_period_time()
Hi,
I've found a problem that the vlapic timer never runs in one-shot mode. This is because the one_shot argument passed to create_period_time() is incorrect. This patch fixes the problem and enables one-shot timer to work properly.
Regards,
-------------------
Yosuke Iwamatsu
NEC Corporation
# HG changeset patch
# User Yosuke Iwamatsu <[email protected]> # Date 1182507980 -32400
# Node ID 924bd2238560ec01f757e1eda1897c5327e1d997 # Parent 015d9abeacfb39c73c9aa488c2def2f66ab06e2b
vlapic: Fix one_shot argument passed to create_period_time()
vlapic_lvtt_period() returns '0' in one-shot mode and '131072(1<<17)' in periodic mode. On the contrary, to create_periodic_time(), '1' should be passed in one-shot mode and '0' should be passed in periodic mode.
xen/arch/x86/hvm/vlapic.c +3 -2
@@ -660,7 +660,8 @@ static void vlapic_write(struct vcpu *v,vlapic_set_reg (vlapic,APIC_TMICT , val);create_periodic_time (current, &vlapic->pt, period, vlapic->pt.irq, -vlapic_lvtt_period (vlapic),NULL , vlapic); + (vlapic_lvtt_period (vlapic) ?0 :1 ),NULL , + vlapic);HVM_DBG_LOG (DBG_LEVEL_VLAPIC , "bus cycle is %uns, "
@@ -819,7 +820,7 @@ static void lapic_rearm(struct vlapic *s s->pt.irq = lvtt &APIC_VECTOR_MASK ;create_periodic_time (vlapic_vcpu (s), &s->pt, period, s->pt.irq, -vlapic_lvtt_period (s),NULL , s); + (vlapic_lvtt_period (s) ?0 :1 ),NULL , s);printk ("lapic_load to rearm the actimer:" "bus cycle is %uns, "
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel