Thread (18 messages) 18 messages, 6 authors, 2012-08-21

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help