Messages in this thread Patch in this message | | | Subject | [PATCH] MSI broke voyager build | From | James Bottomley <> | Date | 31 Dec 2003 16:58:41 -0600 |
| |
The author made the arch/i386 compile depend on NR_VECTORS being defined.
This symbol, however, was put only into mach-default/irq_vectors.h
The attached patch adds it to voyager; visws and pc9800 however, are still broken.
The code that breaks is this (in arch/i386/kernel/i8259.c):
* us. (some of these will be overridden and become * 'special' SMP interrupts) */ - for (i = 0; i < NR_IRQS; i++) { + for (i = 0; i < (NR_VECTORS - FIRST_EXTERNAL_VECTOR); i++) { int vector = FIRST_EXTERNAL_VECTOR + i; + if (i >= NR_IRQS) + break; if (vector != SYSCALL_VECTOR) set_intr_gate(vector, interrupt[i]);
as far as I can see, with NR_VECTORS set at 256, FIRST_EXTERNAL_VECTOR at 32 and NR_IRQS set at 224 the two forms of the loop are identical. The only case it would make a difference would be for NR_IRQ > NR_VECTORS + FIRST_EXTERNAL_VECTOR which doesn't seem to make any sense. Perhaps just backing this change out of i8259.c would be better? NR_VECTORS seems to have no other defined use in the MSI code.
James
===== include/asm-i386/mach-voyager/irq_vectors.h 1.4 vs edited ===== --- 1.4/include/asm-i386/mach-voyager/irq_vectors.h Wed Oct 22 11:34:51 2003 +++ edited/include/asm-i386/mach-voyager/irq_vectors.h Wed Dec 31 16:30:15 2003 @@ -55,6 +55,7 @@ #define VIC_CPU_BOOT_CPI VIC_CPI_LEVEL0 #define VIC_CPU_BOOT_ERRATA_CPI (VIC_CPI_LEVEL0 + 8) +#define NR_VECTORS 256 #define NR_IRQS 224 #define NR_IRQ_VECTORS NR_IRQS - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |