Never mind! I solved it. I got the wrong IRQ assign to the NIC but thats because...
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_8132_2, (3<<2)|0, m->apicid_8132_2,0x0);
when I assign a 0x0 in that line I actually get irq 31 assign to the NIC. So I guess there is some sort of conversation to do here because what I need is IRQ 5 for the NIC not 31 (even if 31 seems to work fine).
My understanding is that smp_write_intsrc() uses relative offsets from the APIC. So to get the interrupt number, you add the number of interrupts from each APIC up to m->apicid_8132_2, + 0.
There's probably a better explanation on the list somewhere, but I couldn't find it right now. Hopefully it's enough to get you started.
Thanks, Myles