Crash with BenH's 2.4.10/2.4.11-pre on 7600
Michel Lanners
mlan at cpu.lu
Mon Oct 8 05:20:20 EST 2001
Hi all,
Recent 2.4 kernels refuse to boot my old faithful 7600 (OldWorld). Ben's
current 2.4.11-pre4-ben0 crashes inside kmalloc(), called from
__request_region():
vector: 300 at pc = c002e150, lr = c0019a08
msr = 9032, sp = c01d91f0 [c01d9140]
dar = 2c, dsisr = 40000000
current = c01d7460, pid = 0, comm = swapper
mon>
pc is here:
c002e0c4 <kmalloc>:
c002e0c4: 94 21 ff d0 stwu r1,-48(r1)
c002e0c8: 7c 08 02 a6 mflr r0
c002e0cc: bf 81 00 20 stmw r28,32(r1)
c002e0d0: 90 01 00 34 stw r0,52(r1)
c002e0d4: 3d 20 c0 1e lis r9,-16354
c002e0d8: 80 09 ab 80 lwz r0,-21632(r9)
c002e0dc: 7c 6b 1b 78 mr r11,r3
c002e0e0: 2c 00 00 00 cmpwi r0,0
c002e0e4: 7c 9c 23 78 mr r28,r4
c002e0e8: 38 69 ab 80 addi r3,r9,-21632
c002e0ec: 41 82 01 78 beq c002e264 <kmalloc+0x1a0>
c002e0f0: 73 80 00 01 andi. r0,r28,1
c002e0f4: 3d 20 c0 18 lis r9,-16360
c002e0f8: 3c 80 c0 18 lis r4,-16360
c002e0fc: 4f 80 00 00 mcrf cr7,cr0
c002e100: 80 03 00 00 lwz r0,0(r3)
c002e104: 7c 0b 00 40 cmplw r11,r0
c002e108: 41 81 01 50 bgt c002e258 <kmalloc+0x194>
c002e10c: 41 9e 00 0c beq cr7,c002e118 <kmalloc+0x54>
c002e110: 83 e3 00 08 lwz r31,8(r3)
c002e114: 48 00 00 08 b c002e11c <kmalloc+0x58>
c002e118: 83 e3 00 04 lwz r31,4(r3)
c002e11c: 41 9e 00 34 beq cr7,c002e150 <kmalloc+0x8c>
c002e120: 80 1f 00 2c lwz r0,44(r31)
c002e124: 3b c1 00 08 addi r30,r1,8
c002e128: 70 0b 00 01 andi. r11,r0,1
c002e12c: 3b bf 00 08 addi r29,r31,8
c002e130: 40 82 00 4c bne c002e17c <kmalloc+0xb8>
c002e134: 38 84 f0 5c addi r4,r4,-4004
c002e138: 38 69 ef 70 addi r3,r9,-4240
c002e13c: 38 a0 04 bd li r5,1213
c002e140: 4b fe 5d 5d bl c0013e9c <printk>
c002e144: 38 60 00 00 li r3,0
c002e148: 48 05 ed 35 bl c008ce7c <xmon>
c002e14c: 48 00 00 30 b c002e17c <kmalloc+0xb8>
c002e150: 80 1f 00 2c lwz r0,44(r31)
^^^^^^^^
c002e154: 3b c1 00 08 addi r30,r1,8
c002e158: 70 0b 00 01 andi. r11,r0,1
c002e15c: 3b bf 00 08 addi r29,r31,8
c002e160: 41 82 00 1c beq c002e17c <kmalloc+0xb8>
and lr points here:
c00199dc <__request_region>:
c00199dc: 94 21 ff e0 stwu r1,-32(r1)
c00199e0: 7c 08 02 a6 mflr r0
c00199e4: bf 61 00 0c stmw r27,12(r1)
c00199e8: 90 01 00 24 stw r0,36(r1)
c00199ec: 7c 7e 1b 78 mr r30,r3
c00199f0: 7c 9c 23 78 mr r28,r4
c00199f4: 7c bd 2b 78 mr r29,r5
c00199f8: 7c db 33 78 mr r27,r6
c00199fc: 38 60 00 1c li r3,28
c0019a00: 38 80 03 f0 li r4,1008
c0019a04: 48 01 46 c1 bl c002e0c4 <kmalloc>
c0019a08: 7c 7f 1b 79 mr. r31,r3
^^^^^^^^
c0019a0c: 41 82 00 68 beq c0019a74 <__request_region+0x98>
c0019a10: 7f e3 fb 78 mr r3,r31
c0019a14: 38 80 00 00 li r4,0
c0019a18: 38 a0 00 1c li r5,28
c0019a1c: 4b ff 5f 59 bl c000f974 <memset>
I've tried to follow the code in kmalloc(), but I've not found a lot....
if I understand xmon's crashinfo right, it would seem that r31 points
into nowhereland, but I'm not sure where it gets loaded with what
address... that would be (r3+8), right? And r3 would point at
0xc01eab80, right? Well, that is in kernel space, and System.map says
this:
c01e9fd8 D font_sun_12x22
c01e9ff0 d fontdata_8x16
c01eaff0 D font_vga_8x16
c01eb008 d fb_fops
c01eb050 d red2
I'm confused....
Anybody who can help here?
Thanks
Michel
-------------------------------------------------------------------------
Michel Lanners | " Read Philosophy. Study Art.
23, Rue Paul Henkes | Ask Questions. Make Mistakes.
L-1710 Luxembourg |
email mlan at cpu.lu |
http://www.cpu.lu/~mlan | Learn Always. "
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list