[PATCH 06/14] ARM: pci: Keep pci_common_init() around after init

Arnd Bergmann arnd at arndb.de
Wed Feb 6 19:54:22 EST 2013


On Wednesday 06 February 2013 17:38:20 Linus Walleij wrote:
> On Wed, Jan 9, 2013 at 9:43 PM, Thierry Reding
> <thierry.reding at avionic-design.de> wrote:
> 
> > When using deferred driver probing, PCI host controller drivers may
> > actually require this function after the init stage.
> >
> > Signed-off-by: Thierry Reding <thierry.reding at avionic-design.de>
> 
> There seem to be a proliferation of these patches now.
> 
> Isn't this just papering over the real problem? The discarding
> of __init sections need to happen *after* all deferred probes
> are complete, lest we have to remove *all* __init sections from
> *all* drivers in the kernel, don't we?

No, I think it's not quite that bad. I think the rule is still
just that .probe() functions and anything called from them must
not be __init. They used to be __devinit, which would cause
problems with deferred probing on !HOTPLUG systems but that's
gone in 3.9.

Thierry's patch is just necessary because pci_common_init used
to be called only from actual __init functions, and not it
gets called from a .probe() function for the first time.

	Arnd



More information about the linux-arm-kernel mailing list