Re: PCI: switch pci_{enable,disable}_device() to be nestable

From: Alan
Date: Sat Dec 02 2006 - 06:20:39 EST


> However, because the order at which those drivers load cannot be known
> ahead of time, the sequence in which the calls to pci_enable_device()
> and pci_disable_device() cannot be predicted. Thus:
>
> 1. driverA starts pci_enable_device()
> 2. driverB starts pci_enable_device()
> 3. driverA shutdown pci_disable_device()
> 4. driverB shutdown pci_disable_device()
>
> between steps 3 and 4, driver B would loose access to it's device,
> even if it didn't intend to.

This is insufficient for some cases. Someone needs to set the enabled
value to one for unclaimed devices which are found to be enabled at boot
time (IO/MEM set) otherwise the stacking will fail on things like a
CS5520 where the firmware has set it enabled and if you disable it your
system dies on the spot.

Otherwise this looks most welcome.

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