--- mercurial/linux-2.6-xen-sparse/arch/xen/i386/kernel/acpi/boot.c 2005-08-29 14:47:11.000000000 +0000 +++ build/linux-2.6-xen-sparse/arch/xen/i386/kernel/acpi/boot.c 2005-08-29 15:27:09.000000000 +0000 @@ -469,6 +469,18 @@ unsigned int irq; unsigned int plat_gsi = gsi; +#ifdef CONFIG_PCI + /* + * Make sure all (legacy) PCI IRQs are set as level-triggered. + * */ + if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) { + extern void eisa_set_level_irq(unsigned int irq); + + if (edge_level == ACPI_LEVEL_SENSITIVE) + eisa_set_level_irq(gsi); + } +#endif + #ifdef CONFIG_X86_IO_APIC if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC) { plat_gsi = mp_register_gsi(gsi, edge_level, active_high_low);