|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] iommu: Fix hvm_dpci_eoi for smp guest in
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1215016107 -3600
# Node ID 3d5f28d6e77711d3b5adb8fd75cd05fe0537302d
# Parent 97b4c5c511f04dc91ae2637e076d325ed91d01e7
iommu: Fix hvm_dpci_eoi for smp guest in ioapic interrupt mode
My testing shows, for some smp guests, ent->fields.mask will not be
unmasked when hvm_dpci_eoi() is invoked at the first time. In that
case, we should rely on timeout call back to do pirq_guest_eoi() and
should not stop the per-irq timer too early.
From: Wei Wang <wei.wang2@xxxxxxx>
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
xen/drivers/passthrough/io.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff -r 97b4c5c511f0 -r 3d5f28d6e777 xen/drivers/passthrough/io.c
--- a/xen/drivers/passthrough/io.c Wed Jul 02 17:26:42 2008 +0100
+++ b/xen/drivers/passthrough/io.c Wed Jul 02 17:28:27 2008 +0100
@@ -258,10 +258,12 @@ void hvm_dpci_eoi(struct domain *d, unsi
{
spin_unlock(&hvm_irq_dpci->dirq_lock);
- stop_timer(&hvm_irq_dpci->hvm_timer[
- domain_irq_to_vector(d, machine_gsi)]);
if ( (ent == NULL) || !ent->fields.mask )
+ {
+ stop_timer(&hvm_irq_dpci->hvm_timer[
+ domain_irq_to_vector(d, machine_gsi)]);
pirq_guest_eoi(d, machine_gsi);
+ }
}
else
spin_unlock(&hvm_irq_dpci->dirq_lock);
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] iommu: Fix hvm_dpci_eoi for smp guest in ioapic interrupt mode,
Xen patchbot-unstable <=
|
|
|
|
|