Following this, i changed the irq_tables.c file to be like this:
Did you fix the table's headers too, to read the correct number of entries, and the right checksum? The table you derived yours from had only two devices entries, and your results are sort-of consistent with that.
Nonetheless, the kernel assumes some strange things, let's keep in mind that the kernel i'm using is an old 2.4.20, which may or may not treat this IRQ assignments correctly. Using pci=biosirq makes no change.
A newer kernel might help for sure.
These are the IRQ's the kernel assigns:
USB IRQ9 eth0 IRQ10 eth1 IRQ11 eth2 IRQ9
Can you show us all kernel boot messages about IRQ routing? Or just *all* boot messages ;-)
Segher