On Fri, Aug 17, 2012 at 3:07 PM, Thierry Reding <thierry.reding@xxxxxxxxxxxxxxxxx> wrote: > On Fri, Aug 17, 2012 at 10:48:39PM +0200, Thierry Reding wrote: >> On Fri, Aug 17, 2012 at 02:39:34PM -0600, Bjorn Helgaas wrote: > [...] >> > Well, maybe you just need to turn on CONFIG_HOTPLUG. How would that >> > affect you? I think we would still have to change some __inits to >> > __devinit, including pcibios_update_irq(), but it might be more >> > manageable. >> >> You said that depending on HOTPLUG wouldn't be enough because it would >> exclude reenumeration at runtime if HOTPLUG wasn't defined. Also it is >> theoretically possible to build a kernel without HOTPLUG but have the >> enumeration start after init because of deferred probing. Those cases >> won't work if we keep __init or __devinit respectively, right? > > Another possibility would be to make PCI select HOTPLUG or depend on it. > That way it would be made sure that __devinit wouldn't cause all the > functions to be discarded after init. There's been some discussion recently about whether CONFIG_HOTPLUG is worth keeping any more, but nothing's been resolved yet. If we did decide to remove CONFIG_HOTPLUG, or require it for PCI, I would rather just remove all the __devinit annotations because they'd be superfluous. > Also, using PCI without HOTPLUG is sort of contradictory. I'm not sure I follow this one. I can easily imagine embedded systems that use PCI internally but have no slots or connectors, so there's no possibility of anything changing.