Re: kernel segv with 2.6.31-rc6 ?

From: Helge Deller
Date: Thu Aug 20 2009 - 08:25:50 EST


> > On Mon, 2009-08-17 at 22:06 -0700, Roland McGrath wrote:
> > > > I'd be happy to fail to load it. There might be sysfs issues with
> it
> > too.
> > >
> > > That sounds reasonable to me. And I'd be happy to at least look a
> > little
> > > and maybe give some advice to anybody who finds themself building such
> a
> > > (free) module, doesn't know why or how it got that way, and wants to
> > ask.
> >
> > Actually, for parisc, its not reasonable. It's expected that our
> > modules have multiple text sections (we have to use -ffunction-sections
> > to generate them in order that the PCREL17 jump stubs can be
> > interleaved).
> >
> > The problem looks to be that some linker error gave the one of the named
> > function text sections a duplicate name. Helge, can you post he objdump
> > info that shows which section had a duplicate name?
> >
> > Even with the duplicate name, though, the module should be perfectly
> > loadable.
>
>
> It's the ac97_bus kernel module:
> -rw-r--r-- 1 root root 3.0K 2009-08-19 12:25 ac97_bus.ko

That's actually a problem of all kernel modules on hppa when using a newer compiler, not only the ac97_bus module.

The reason seems to be, that something in the newer gcc compilers changed to generate multiple sections all named ".text" for the PCREL17 relocations.
Older compilers named those sections ".text.1", ".text.2", ".text.3" and so forth.

"objdump -x ac97_bus.ko" with current (newer) compiler gives:
> Sections:
> Idx Name Size VMA LMA File off Algn
> 0 .note.gnu.build-id 00000024 00000000 00000000 00000034 2**2
> CONTENTS, ALLOC, LOAD, READONLY, DATA
> 1 .text 00000000 00000000 00000000 00000058 2**0
> CONTENTS, ALLOC, LOAD, READONLY, CODE
> 2 .text.ac97_bus_match 0000001c 00000000 00000000 00000058 2**2
> CONTENTS, ALLOC, LOAD, READONLY, CODE
> 3 .exit.text 00000030 00000000 00000000 00000074 2**2
> CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
> 4 .init.text 00000030 00000000 00000000 000000a4 2**2
> CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
> 5 .text 00000000 00000000 00000000 000000d4 2**0
> CONTENTS, ALLOC, LOAD, READONLY, CODE
>...

older compiler produced:
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000000 00000000 00000000 00000034 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .text.ac97_bus_match 0000001c 00000000 00000000 00000034 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .exit.text 00000030 00000000 00000000 00000050 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
3 .init.text 00000030 00000000 00000000 00000080 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
4 .text.1 00000000 00000000 00000000 000000b0 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
...

Helge
--
Neu: GMX Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate
für nur 19,99 Euro/mtl.!* http://portal.gmx.net/de/go/dsl01
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/