diff -r dedfadeadf86 xen/drivers/passthrough/io.c --- a/xen/drivers/passthrough/io.c Fri Jun 20 18:42:45 2008 +0100 +++ b/xen/drivers/passthrough/io.c Wed Jul 02 18:15:10 2008 +0200 @@ -253,10 +253,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);