It looks pretty wrong in the BIOS. Here are the entries for 2:3.0 and 2:4.0. This translates to (bus,devfn) of (2,0x18) and (2,0x20)
{0x2,0x18, {{0x4, 0xdef8}, {0, 0xdef8}, \ {0, 0xdef8}, {0, 0xdef8}}, 0x7, 0},
First, the slot is 7, not 0 as it should be for on-board.
{0x2,0x20, {{0x4, 0xdef8}, {0, 0xdef8}, \ {0, 0xdef8}, {0, 0xdef8}}, 0x8, 0},
The slot is 8, not 0.
Also, the IRQ line id is 4, and the hardware shows it as 1.
So everything about this table is busted ....
I'll try to fix it, but this is a worrisome sign for the future, in that we seem to find more and more broken IRQ tables.
ron