Re: PCI MSI: the new interrupt routing headache

From: Max Krasnyansky
Date: Thu Nov 17 2005 - 14:07:26 EST


Hi Jeff,

I just got SATA working on Marvell. After fixing a bunch of issues in the driver, the final issue was lack of interrupts. Disabling CONFIG_PCI_MSI solved that, and suddenly the driver was working quite nicely.

The general problem is that pci_enable_msi() is not failing, on systems that do not support MSI. This leads to Infiniband, tg3, and other drivers working around this problem by including an MSI-interrupts-work test during probe.

Perhaps its because I like leading edge stuff, and am playing with drivers for PCI MSI hardware, but it seems like I am running into this pci_enable_msi()-doesnt-fail problem more and more frequently. First tg3, then AHCI, now sata_mv.

What needs to be done, to detect working PCI message signalled interrupts such that pci_enable_msi() fails properly?
It fails correctly when MSI quirk is enabled. I had the same problems
on AMD 8131 based machine with 2.6.11 kernel. E1000 was enabling MSI and
not getting any interrupts. Later (.13 I think) MSI quirk was introduced for
8131 chipset and everything started working (without having to hack E1000
that is).
May be you should just add your platform to the PCI quirks list ?

Max
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/