From: Daniel Barkalow <[EMAIL PROTECTED]>
Date: Mon, 22 Oct 2007 17:31:04 -0400 (EDT)

> It's likewise documented (although maybe arguable in wording) that the 
> device shouldn't send legacy interrupts if MSI is in use, regardless of 
> INTX_DISABLE, but this also happens in the field.
> 
> I think that the current Linux behavior with respect to INTX_DISABLE is 
> simply due to which hardware bug was present in the device whose driver 
> first got Linux support, but one or the other or both needs a quirk, since 
> there's no behavior that works with everything. And it's still impossible 
> to tell which bug is more common, since MSI isn't used most of the time, 
> even if the hardware supports it, so it's pretty arbitrary which way Linux 
> goes in the non-quirk case.

I think this pretty much sums up the situation accurately.

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.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to