Re: PCI Section mismatch error in linux-next.
From: Thierry Reding <hidden>
Date: 2012-08-17 20:08:10
Also in:
linux-pci
On Fri, Aug 17, 2012 at 01:32:45PM -0600, Bjorn Helgaas wrote:
On Fri, Aug 17, 2012 at 12:29 PM, Thierry Reding [off-list ref] wrote:quoted
On Fri, Aug 17, 2012 at 11:44:31AM -0600, Bjorn Helgaas wrote:quoted
On Fri, Aug 17, 2012 at 11:36 AM, David Daney [off-list ref] wrote:quoted
For MIPS, Thierry Reding's patch in linux-next (PCI: Keep pci_fixup_irqs() around after init) causes: WARNING: vmlinux.o(.text+0x22c784): Section mismatch in reference from the function pci_fixup_irqs() to the function .init.text:pcibios_update_irq() The MIPS implementation of pcibios_update_irq() is __init, so there is conflict with the removal of __init from pci_fixup_irqs() and pdev_fixup_irq(). Can you guys either remove the patch from linux-next, or improve it to also fix up any architecture implementations of pdev_update_irq()?Crap, there are lots of arches with this issue. I'll fix it up. Thanks for pointing it out!Oh wow... looks like I've opened a can of worms there. This requires quite a lot of other functions to have their annotations removed as well. Bjorn, how do you want to handle this?David said "pdev_update_irq()," but I think he meant "pcibios_update_irq()." Almost all the pcibios_update_irq() implementations are identical, so I think I'll just supply a weak implementation and remove the redundant arch versions.
That makes sense. However I've just tested a build with section mismatch debugging enabled on ARM and there are a few more that need __init or __devinit removed to get rid of the warnings: pci_common_init() pcibios_init_hw() pcibios_init_resources() pcibios_swizzle() pcibios_update_irq() pci_scan_root_bus() also needs __devinit removed. I haven't checked the other architectures because I'll have to build cross-compilers for them first, but I suspect most of them will have a similar list. I'm not sure how well this kind of change is going to go down with the respective architecture maintainers, though.
This is just about the only thing in my "next" branch, so I'll clear it out for now, until we get this resolved.
Agreed. Do you want me to take a look at this or would you rather tackle it yourself? Thierry
Attachments
- (unnamed) [application/pgp-signature] 836 bytes