All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] vlapic: Fix one_shot argument passed to create_period_time()
@ 2007-06-22 10:39 Yosuke Iwamatsu
  0 siblings, 0 replies; only message in thread
From: Yosuke Iwamatsu @ 2007-06-22 10:39 UTC (permalink / raw)
  To: xen-devel

[-- Attachment #1: Type: text/plain, Size: 311 bytes --]

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







[-- Attachment #2: vlapic_timer_one_shot.patch --]
[-- Type: text/plain, Size: 1596 bytes --]

# HG changeset patch
# User Yosuke Iwamatsu <y-iwamatsu@ab.jp.nec.com>
# 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.

Signed-off-by: Yosuke Iwamatsu <y-iwamatsu@ab.jp.nec.com>

diff -r 015d9abeacfb -r 924bd2238560 xen/arch/x86/hvm/vlapic.c
--- a/xen/arch/x86/hvm/vlapic.c	Thu Jun 21 21:36:26 2007 +0100
+++ b/xen/arch/x86/hvm/vlapic.c	Fri Jun 22 19:26:20 2007 +0900
@@ -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, "


[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-06-22 10:39 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-22 10:39 [PATCH] vlapic: Fix one_shot argument passed to create_period_time() Yosuke Iwamatsu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.