My suggestion is:
1) Leave the pci_intx() twiddling code in drivers/pci/msi.c
2) Add quirks for "INTX_DISABLE turns off MSI too", this sets
a flag in the pci_dev.
3) The pci_intx() calls in drivers/pci/msi.c are skipped if this
flag from #2 is set.
4) Add quirk entries for drivers/net/tg3.c chips and these SATA
devices we are learning about here, as well as any others we
are aware of right now.
5) Remove the pci_intx() workaround code from drivers/net/tg3.c
and elsewhere.