Function pci_get_legacy_ide_irq is incorrect on ia64. It should return irq vector instead of GSI. The fixed number 14 and 15 are just GSI. Below patch against kernel 2.6.20 fixes it. Signed-off-by: Zhang Yanmin <yanmin.zhang@xxxxxxxxx> --- diff -Nraup linux-2.6.20/include/asm-ia64/pci.h linux-2.6.20_fix/include/asm-ia64/pci.h --- linux-2.6.20/include/asm-ia64/pci.h 2007-02-08 02:13:44.000000000 -0500 +++ linux-2.6.20_fix/include/asm-ia64/pci.h 2007-02-11 16:39:08.000000000 -0500 @@ -9,6 +9,7 @@ #include <asm/io.h> #include <asm/scatterlist.h> +#include <asm/hw_irq.h> /* * Can be used to override the logic in pci_scan_bus for skipping already-configured bus @@ -170,7 +171,7 @@ pcibios_select_root(struct pci_dev *pdev #define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) { - return channel ? 15 : 14; + return channel ? isa_irq_to_vector(15) : isa_irq_to_vector(14); } #endif /* _ASM_IA64_PCI_H */ - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |