Index: xen/arch/x86/irq.c =================================================================== --- xen.orig/arch/x86/irq.c 2006-08-22 23:14:25.000000000 -0400 +++ xen/arch/x86/irq.c 2006-08-22 23:19:37.000000000 -0400 @@ -289,6 +289,8 @@ static void flush_all_pending_eoi(void * action = (irq_guest_action_t *)desc->action; ASSERT(action->ack_type == ACKTYPE_EOI); ASSERT(desc->status & IRQ_GUEST); + ASSERT(cpu_isset(action->cpu_eoi_map)); + cpu_clear(cpu, action->cpu_eoi_map); for ( i = 0; i < action->nr_guests; i++ ) clear_bit(vector_to_irq(vector), action->guest[i]->pirq_mask); action->in_flight = 0;