Re: OMAP34xx

Russell King - ARM Linux
2012-02-10T20:06:41Z

On Fri, Feb 10, 2012 at 01:53:12PM +0200, Grazvydas Ignotas wrote:
> On Thu, Feb 9, 2012 at 8:36 PM, Tony Lindgren <tony@atomide.com> wrote:
> > Please everybody using omaps with mainline give a test for the
> > merge of the various fixes planned. I've done a branch with
> > v3.3-rc3 + Russell's fixes + Paul's serial port fixes + fixes
> > that I've queued up.
>
> Seems to be good on pandora with omap2plus_defconfig, only one section mismatch:
>
> WARNING: vmlinux.o(.text+0x22b64): Section mismatch in reference from
> the function omap4_hotplug_cpu() to the function
> .cpuinit.text:omap_secondary_startup()
> The function omap4_hotplug_cpu() references the function __cpuinit
> omap_secondary_startup().
> This is often because omap4_hotplug_cpu lacks a __cpuinit annotation
> or the annotation of omap_secondary_startup is wrong.

That's expected at the moment, and is something that shouldn't be solved
by changing omap_secondary_startup().

However, omap4_hotplug_cpu() and platform_cpu_die() are both things which
run when the CPU is being unplugged, so they should logically be __cpuexit.
However, we would end up with __cpuexit code referencing __cpuinit code,
which will also emit a warning.

So, just like Versatile Express et.al. we persist with the section mismatch
warning being emitted for these platforms, because the reference there is
entirely valid for this code.

Unfortunately, there's no way to place omap4_hotplug_cpu() into the
__cpuexit section and mark it as validly referencing __cpuinit code.
(iow, __ref doesn't work for that.)