public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Andres Salomon" <dilinger@voxel.net>
To: linux-kernel@vger.kernel.org
Subject: problem w/ 2.5.70-mm3 and modules
Date: Mon, 02 Jun 2003 06:24:21 -0400	[thread overview]
Message-ID: <bbf8gc$uc$1@main.gmane.org> (raw)

On sparc64, loading of modules (dm-mod, at least) triggers a BUG_ON() in
apply_relocate_add() (arch/sparc64/kernel/module.c):


dilinger@lag:~$ ksymoops oops
ksymoops 2.4.8 on sparc64 2.5.70-mm3.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.5.70-mm3/ (default)
     -m /boot/System.map-2.5.70-mm3 (default)
 
Warning: You did not tell me where to find symbol information.  I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc.  ksymoops -h explains the options.
 
Error (regular_file): read_ksyms stat /proc/ksyms failed
ksymoops: No such file or directory
No modules in ksyms, skipping objects
No ksyms, skipping lsmod
modprobe(65): Kernel bad sw trap 5 [#1]
TSTATE: 0000000011009606 TPC: 000000000043b1a0 TNPC: 000000000043b1a4 Y: ffffee00    Not tainted
Using defaults from ksymoops -t elf32-sparc -a sparc
g0: 00000000005b1c00 g1: 0000000000000000 g2: 00000001400129a4 g3: 0000000000000000
g4: fffff80031c1e080 g5: 0000000000000000 g6: fffff80000ca0000 g7: 0000000000000000
o0: 0000000000000004 o1: 0000000000000001 o2: 0000000000000000 o3: 00000001400129a0
o4: 0000000140014028 o5: 0000000140017c48 sp: fffff80000ca3321 ret_pc: 0000000140017c48
l0: 00000000000019f8 l1: 0000000140018278 l2: 0000000000000116 l3: 0000000000000116
l4: 000000000000fff1 l5: 0000000000000000 l6: 000000000000fff2 l7: 0000000000588ac0
i0: 0000000140013b28 i1: 0000000140019c88 i2: 0000000000000014 i3: 0000000000000006
i4: 00000000020054e8 i5: 0000000000000004 i6: fffff80000ca33e1 i7: 000000000045d948
Instruction DUMP: 8402c008  9330b020  80a26000 <93d03005> d25b6008  d45b2010  97327020  d85b6010  9002c00b
 
 
>>PC;  0043b1a0 <apply_relocate_add+60/2a0>   <=====
 
>>g0; 005b1c00 <init_sighand+618/a08>
>>l7; 00588ac0 <masks.3+28/40>
>>i7; 0045d948 <load_module+668/7c0>
 
Code;  0043b194 <apply_relocate_add+54/2a0>
00000000 <_PC>:
Code;  0043b194 <apply_relocate_add+54/2a0>
   0:   84 02 c0 08       add  %o3, %o0, %g2
Code;  0043b198 <apply_relocate_add+58/2a0>
   4:   93 30 b0 20       unknown
Code;  0043b19c <apply_relocate_add+5c/2a0>
   8:   80 a2 60 00       cmp  %o1, 0
Code;  0043b1a0 <apply_relocate_add+60/2a0>   <=====
   c:   93 d0 30 05       tne  -4091   <=====
Code;  0043b1a4 <apply_relocate_add+64/2a0>
  10:   d2 5b 60 08       unknown
Code;  0043b1a8 <apply_relocate_add+68/2a0>
  14:   d4 5b 20 10       unknown
Code;  0043b1ac <apply_relocate_add+6c/2a0>
  18:   97 32 70 20       unknown
Code;  0043b1b0 <apply_relocate_add+70/2a0>
  1c:   d8 5b 60 10       unknown
Code;  0043b1b4 <apply_relocate_add+74/2a0>
  20:   90 02 c0 0b       add  %o3, %o3, %o0
 
 
1 warning and 1 error issued.  Results may not be reliable.



Here's what's actually happening:

load_module(): relocating section header #1: name='.text', address=0x2000000; section header type=1
load_module(): relocating section header #2: name='.rela.text', address=0x1400140a8; section header type=4
apply_relocate_add(): section header address: 00000001400140a8
apply_relocate_add(): section header size: 0x3738; additional info: 1; number of relocatable symbols: 589
apply_relocate_add(): rel symbol offset=0x4; base: 0x2000000; location=0000000002000004
apply_relocate_add(): rel symbol offset=0x8; base: 0x2000000; location=0000000002000008
load_module(): relocating section header #3: name='.init.text', address=0x2008000; section header type=1
load_module(): relocating section header #4: name='.rela.init.text', address=0x1400177e0; section header type=4
apply_relocate_add(): section header address: 00000001400177e0
apply_relocate_add(): section header size: 0x468; additional info: 3; number of relocatable symbols: 47
apply_relocate_add(): rel symbol offset=0x4; base: 0x2008000; location=0000000002008004
apply_relocate_add(): rel symbol offset=0xc; base: 0x2008000; location=000000000200800c
load_module(): relocating section header #5: name='.exit.text', address=0x1400129a0; section header type=1
load_module(): relocating section header #6: name='.rela.exit.text', address=0x140017c48; section header type=4
apply_relocate_add(): section header address: 0000000140017c48
apply_relocate_add(): section header size: 0x30; additional info: 5; number of relocatable symbols: 2
apply_relocate_add(): rel symbol offset=0x4; base: 0x1400129a0; location=00000001400129a4
              \|/ ____ \|/
              "@'/ .. \`@"
              /_| \__/ |_\
                 \__U_/


That last base (0x1400129a0) is too large; when shifted in the
BUG_ON, the result is 0x1.  The actual BUG_ON is:
BUG_ON(((u64)location >> (u64)32) != (u64)0);

dm-mod's section info:

/lib/modules/2.5.70-mm3/kernel/drivers/md/dm-mod.ko:     file format elf64-sparc/lib/modules/2.5.70-mm3/kernel/drivers/md/dm-mod.ko
architecture: sparc:v9, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x0000000000000000
                                                                                
Sections:
Idx Name          Size      VMA               LMA               File off  Algn
  0 .text         00004700  0000000000000000  0000000000000000  00000040  2**5
                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
  1 .init.text    00000260  0000000000000000  0000000000000000  00004740  2**5
                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
  2 .exit.text    00000040  0000000000000000  0000000000000000  000049a0  2**5
                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
  3 .rodata.str1.8 000009e0  0000000000000000  0000000000000000  000049e0  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  4 .modinfo      000000d0  0000000000000000  0000000000000000  000053c0  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA

...


RELOCATION RECORDS FOR [.exit.text]:
OFFSET           TYPE              VALUE
0000000000000004 R_SPARC_HI22      .data+0x0000000000000010
000000000000000c R_SPARC_LO10      .data+0x0000000000000010
                                                                                

I'm not sure how to inspect dm-mod's .rela.exit.text; pointers to doing
this (assuming it's not just another name for .exit.text) would be
appreciated.  This was occurring w/ vanilla 2.5.70, as well.


                 reply	other threads:[~2003-06-02 10:11 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='bbf8gc$uc$1@main.gmane.org' \
    --to=dilinger@voxel.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox