Re: avoiding pci_disable_device()...

From: Jeff Garzik
Date: Mon Feb 14 2005 - 15:08:00 EST


On Mon, Feb 14, 2005 at 11:58:38AM -0800, Roland Dreier wrote:
> Jeff> * pci_request_regions() should be axiomatic. By that I mean,
> Jeff> pci_enable_device() should
> Jeff> (a) handle pci_request_regions() completely
> Jeff> (b) fail if regions are not available
>
> There's one pitfall here: for a device using MSI-X, the MSI-X table is
> going to be somewhere in one of the device's BARs. When the device
> driver does pci_enable_msix(), drivers/pci/msi.c will do
> request_region() on this table. If the device driver has already done
> pci_request_regions(), then this will fail and the driver won't be
> able to use MSI-X. The current solution is for the driver to avoid
> requesting the whole BAR where the MSI-X table is.


That's an MSI bug.

A current PCI driver -should- be using pci_request_regions().

Jeff



-
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/