Thread (2 messages) 2 messages, 2 authors, 2012-09-07

[PATCH v3 01/10] PCI: Keep pci_fixup_irqs() around after init

From: Thierry Reding <hidden>
Date: 2012-09-07 17:00:24
Also in: linux-devicetree, linux-pci, linux-tegra

Possibly related (same subject, not in this thread)

On Fri, Sep 07, 2012 at 10:19:46AM -0600, Stephen Warren wrote:
On 08/15/2012 01:42 PM, Bjorn Helgaas wrote:
quoted
On Wed, Aug 15, 2012 at 1:28 PM, Thierry Reding
[off-list ref] wrote:
quoted
On Wed, Aug 15, 2012 at 10:06:27AM -0700, Bjorn Helgaas wrote:
quoted
On Thu, Jul 26, 2012 at 12:55 PM, Thierry Reding
[off-list ref] wrote:
quoted
When using deferred driver probing, PCI host controller drivers may
actually require this function after the init stage.

Signed-off-by: Thierry Reding <redacted>
---
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[0] 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.

Thierry

[0]: http://www.linux-mips.org/archives/linux-mips/2012-08/msg00250.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120907/b2a2647a/attachment.sig>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help