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 <[EMAIL PROTECTED]>

---

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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to