[PATCH v3 01/10] PCI: Keep pci_fixup_irqs() around after init
thierry.reding at avionic-design.de
Fri Sep 7 13:00:24 EDT 2012
On Fri, Sep 07, 2012 at 10:19:46AM -0600, Stephen Warren wrote:
> On 08/15/2012 01:42 PM, Bjorn Helgaas wrote:
> > On Wed, Aug 15, 2012 at 1:28 PM, Thierry Reding
> > <thierry.reding at avionic-design.de> wrote:
> >> On Wed, Aug 15, 2012 at 10:06:27AM -0700, Bjorn Helgaas wrote:
> >>> On Thu, Jul 26, 2012 at 12:55 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>
> >>>> ---
> >>>> Changes in v3:
> >>>> - none
> >>>> Changes in v2:
> >>>> - use __devinit annotations
> >>> Your original patch removed __init completely. Here you change it to
> >>> __devinit. That means we decide whether to discard the function based
> >>> on whether CONFIG_HOTPLUG is supported. But I think your point is not
> >>> about hotplug; it's merely that we should be able to scan a PCI bus
> >>> after init-time. We ought to be able to do a late PCI scan even if
> >>> hotplug is not supported.
> >>> Therefore, I'd be inclined to remove __init completely unless you have
> >>> another reason for preferring __devinit.
> >> I thought __devinit would resolve to nothing if HOTPLUG is defined and
> >> __init otherwise. That seemed more appropriate. However you are right
> >> that it is useful to always have it available, so I'm fine with removing
> >> the annotations altogether. Do you want me to follow up with a patch? Or
> >> can you just take the first version? I'm not sure if it still applies.
> > You're right about how __devinit works. It's just that I don't think
> > hotplug is actually relevant here. We're trying to make
> > pci_fixup_irqs() work after init, whether it's because of hotplug or
> > simply because the arch scans host bridges after init.
> > I applied this to my "next" branch. Thanks!
> Bjorn, I don't see this patch in next-20120907. Did it get dropped for
> some reason?
Yes, it turns out that dropping the annotations causes lots of section
mismatches on other architectures. See here for the details. I think
the solution to the issue would be to either remove HOTPLUG altogether
and drop __devinit and __devexit annotations or update all architectures
to fix these warnings. I think Bjorn and I settled on the latter because
it's obviously less intrusive. I've been busy building toolchains for
all the PCI architectures and I think I have all of them. I'll just need
some more time to build, find and fix any remaining section mismatches.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 836 bytes
Desc: not available
More information about the linux-arm-kernel