Re: kernel segv with 2.6.31-rc6 ?

Helge Deller
2009-08-20T11:51:25Z

> 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

"objdump -x ac97_bus.ko" shows two .text sections:

ac97_bus.ko: file format elf32-hppa-linux
ac97_bus.ko
architecture: hppa1.1, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x00000000

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
6 .rodata.str1.4 00000008 00000000 00000000 000000d4 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
7 .modinfo 00000040 00000000 00000000 000000dc 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
8 __ksymtab 00000008 00000000 00000000 0000011c 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
9 __ksymtab_strings 0000000e 00000000 00000000 00000124 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
10 .PARISC.unwind 00000030 00000000 00000000 00000134 2**2
CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
11 .data 00000034 00000000 00000000 00000164 2**2
CONTENTS, ALLOC, LOAD, RELOC, DATA
12 .gnu.linkonce.this_module 00000160 00000000 00000000 00000198 2**2
CONTENTS, ALLOC, LOAD, RELOC, DATA, LINK_ONCE_DISCARD
13 .bss 00000000 00000000 00000000 000002f8 2**0
ALLOC
14 .comment 0000003a 00000000 00000000 000002f8 2**0
CONTENTS, READONLY
SYMBOL TABLE:
00000000 l d .note.gnu.build-id 00000000 .note.gnu.build-id
00000000 l d .text 00000000 .text
00000000 l d .text.ac97_bus_match 00000000 .text.ac97_bus_match
00000000 l d .exit.text 00000000 .exit.text
00000000 l d .init.text 00000000 .init.text
00000000 l d .text 00000000 .text
00000000 l d .rodata.str1.4 00000000 .rodata.str1.4
00000000 l d .modinfo 00000000 .modinfo
00000000 l d __ksymtab 00000000 __ksymtab
00000000 l d __ksymtab_strings 00000000 __ksymtab_strings
00000000 l d .PARISC.unwind 00000000 .PARISC.unwind
00000000 l d .data 00000000 .data
00000000 l d .gnu.linkonce.this_module 00000000 .gnu.linkonce.this_module
00000000 l d .bss 00000000 .bss
00000000 l d .comment 00000000 .comment
00000000 l F .text.ac97_bus_match 0000001c ac97_bus_match
00000000 l F .exit.text 00000030 ac97_bus_exit
00000000 l F .init.text 00000030 ac97_bus_init
00000000 l O .modinfo 0000000c __mod_license77
00000000 l O __ksymtab 00000008 __ksymtab_ac97_bus_type
00000000 l O __ksymtab_strings 0000000e __kstrtab_ac97_bus_type
0000000c l O .modinfo 00000009 __module_depends
00000018 l O .modinfo 00000026 __mod_vermagic5
00000000 g O .gnu.linkonce.this_module 00000160 __this_module
00000000 g F .exit.text 00000030 cleanup_module
00000000 g F .init.text 00000030 init_module
00000000 *UND* 00000000 bus_unregister
00000000 g O .data 00000034 ac97_bus_type
00000000 *UND* 00000000 bus_register

RELOCATION RECORDS FOR [.exit.text]:
OFFSET TYPE VALUE
00000010 R_PARISC_DPREL21L ac97_bus_type
00000014 R_PARISC_DPREL14R ac97_bus_type
00000018 R_PARISC_PCREL17F bus_unregister

RELOCATION RECORDS FOR [.init.text]:
OFFSET TYPE VALUE
00000010 R_PARISC_DPREL21L ac97_bus_type
00000014 R_PARISC_DPREL14R ac97_bus_type
00000018 R_PARISC_PCREL17F bus_register

RELOCATION RECORDS FOR [__ksymtab]:
OFFSET TYPE VALUE
00000000 R_PARISC_DIR32 ac97_bus_type
00000004 R_PARISC_DIR32 __ksymtab_strings

RELOCATION RECORDS FOR [.PARISC.unwind]:
OFFSET TYPE VALUE
00000000 R_PARISC_SEGREL32 ac97_bus_match
00000004 R_PARISC_SEGREL32 .text.ac97_bus_match+0x00000018
00000010 R_PARISC_SEGREL32 ac97_bus_exit
00000014 R_PARISC_SEGREL32 .exit.text+0x0000002c
00000020 R_PARISC_SEGREL32 ac97_bus_init
00000024 R_PARISC_SEGREL32 .init.text+0x0000002c

RELOCATION RECORDS FOR [.data]:
OFFSET TYPE VALUE
00000000 R_PARISC_DIR32 .rodata.str1.4
00000010 R_PARISC_PLABEL32 ac97_bus_match

RELOCATION RECORDS FOR [.gnu.linkonce.this_module]:
OFFSET TYPE VALUE
000000d4 R_PARISC_PLABEL32 init_module
00000150 R_PARISC_PLABEL32 cleanup_module

Helge
--
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01