Re: 2.6.17-rc6-mm1

Andi Kleen
2006-06-08T05:45:00Z

On Thursday 08 June 2006 04:46, Randy.Dunlap wrote:
> On 08 Jun 2006 04:25:39 +0200 Andi Kleen wrote:
>
> > Andrew Morton <akpm@osdl.org> writes:
> >
> > > On Thu, 8 Jun 2006 00:31:53 +0200
> > > "J.A. Magallón" <jamagallon@ono.com> wrote:
> > >
> > > > WARNING: drivers/block/floppy.o - Section mismatch: reference to .init.text: from .smp_locks after '' (at offset 0x3c)
> > > > WARNING: drivers/block/floppy.o - Section mismatch: reference to .init.text: from .smp_locks after '' (at offset 0x40)
> > > > WARNING: drivers/block/floppy.o - Section mismatch: reference to .init.text: from .smp_locks after '' (at offset 0x44)
> > >
> > > Yes, that's a false positive - doing locking from within an __init section.
> > > We need to shut that up somehow.
> >
> > Are you sure it's false?
> >
> > I don't see an explicit check in alternatives.c for the main kernel
> > vs init sections and with CPU hotplug the alternatives can be applied
> > arbitarily after the system has booted. So it would just stomp
> > over the init text pages which are used for something else now.
> >
> > I guess to make it safe you would need to teach alternative.c to
> > ignore init sections.
>
> for i386 (arch/i386/alternative.c and module.c):
>
> static void alternatives_smp_lock(u8 **start, u8 **end, u8 *text, u8 *text_end)
> {...}
>
> only replaces code between text and text_end.

You're right - for smp_lock it should be ok, but for other alternatives()
there is no such check. But then they are ok because they shouldn't change
after bootup.

I retract the objection.

> I've cced Gerd on this before. Maybe you can get her to repsond
> to confirm or deny.

Him.

-Andi