Weird crash of kernel during module loading on mpc8548 based board

Alex Dubov oakad at yahoo.com
Mon Jan 18 19:14:35 EST 2010


Greetings.

I've got a rather weird problem and hope that somebody may have encountered
it before.

I've got an MPC8548 based board which was not supported by the
u-boot/kernel, but was quite similar to other AMC boards of this sort. I
patched up the kernel and stress-tested the board quite extensively
(essentially, by compiling a whole gentoo distro natively on it, which
took me a couple of weeks :-). Board has a single SODIMM with 512 MB
memory installed.

Now, I enabled a loadable module support and want to load a small module
I'm working on. However, all my attempts to load the module lead to
immediate kernel segfault, at precisely the first command of the
module_init function.

I'm working with a git head version of the kernel (2.6.33-rc4-xx).
All user space functionality works fine - I'm running a fully featured
workstation setup on it over nfs root.

Here is the debug dump:
-bash: HISTORY: PID=1731 UID=0 modprobe rio_core
[   34.149070] load_module: umod=4802f008, len=141251, uargs=1001d160
[   34.150198] Core section allocation order:
[   34.150212]         .text
[   34.150217]         .exit.text
[   34.150221]         .plt
[   34.150226]         .note.gnu.build-id
[   34.150231]         __ksymtab_strings
[   34.150236]         .rodata.str1.4
[   34.150241]         __ksymtab
[   34.150246]         __kcrctab
[   34.150251]         .data
[   34.150256]         .gnu.linkonce.this_module
[   34.150261]         .bss
[   34.150266] Init section allocation order:
[   34.150273]         .init.text
[   34.150277]         .init.plt
[   34.150285]         .symtab
[   34.150339]         .strtab
[   34.150410] final section addresses:
[   34.150418]         0xe10ac2f8 .note.gnu.build-id
[   34.150434]         0xe10ab000 .text
[   34.150440]         0xe10ac1a4 .exit.text
[   34.150446]         0xe10b0000 .init.text
[   34.150453]         0xe10ac31c __ksymtab_strings
[   34.150460]         0xe10ac37c .rodata.str1.4
[   34.150466]         0xe10ac5bc __ksymtab
[   34.150472]         0xe10ac5ec __kcrctab
[   34.150479]         0xe10ac604 .data
[   34.150486]         0xe10ac728 .gnu.linkonce.this_module
[   34.150492]         0xe10ac870 .bss
[   34.150497]         0xe10ac1a8 .plt
[   34.150503]         0xe10b0058 .init.plt
[   34.150514]         0xe10b0068 .symtab
[   34.150524]         0xe10b0f08 .strtab
[   34.150545] kobject: 'rio_core' (e10ac770): kobject_add_internal:
parent: 'module', set: 'module'
[   34.150580] Absolute symbol: 0x00000000
[   34.150586] Absolute symbol: 0x00000000
[   34.150593] Absolute symbol: 0x00000000
[   34.151961] Absolute symbol: 0xb77d8702
[   34.152726] Absolute symbol: 0x137e9f0d
[   34.152869] Absolute symbol: 0x86125fdb
[   34.153428] Absolute symbol: 0xc4a5e8df
[   34.153728] Absolute symbol: 0x74e7f0ed
[   34.153866] Absolute symbol: 0xb45adf12
[   34.154328] Failed to find symbol rio_free_iface
[   34.154676] Failed to find symbol rio_remove_iface
[   34.155024] Failed to find symbol rio_add_iface
[   34.155372] Failed to find symbol rio_alloc_iface
[   34.155720] Failed to find symbol copy_toio_be32
[   34.156080] Failed to find symbol copy_fromio_be32
[   34.162175] kobject: 'holders' (df19a700): kobject_add_internal: parent:
'rio_core', set: '<NULL>'
[   34.162201] kobject: 'rio_core' (e10ac770): kobject_uevent_env
[   34.162220] kobject: 'rio_core' (e10ac770): fill_kobj_path: path =
'/module/rio_core'
[   34.163393] kobject: 'notes' (df19a540): kobject_add_internal: parent:
'rio_core', set: '<NULL>'
[   34.163457] Unable to handle kernel paging request for instruction fetch
[   34.163465] Faulting instruction address: 0xe10b0000
[   34.163476] Oops: Kernel access of bad area, sig: 11 [#1]
[   34.168864] STX AMC8548
[   34.171299] Modules linked in: rio_core(+)
[   34.175395] NIP: e10b0000 LR: c0001dc0 CTR: e10b0000
[   34.180349] REGS: df1b1e50 TRAP: 0400   Not tainted  (2.6.33-rc4-00193-
gd1e4922-dirty)
[   34.188248] MSR: 00029000 <EE,ME,CE>  CR: 24022482  XER: 00000000
[   34.194360] TASK = dfa4d2c0[1736] 'modprobe' THREAD: df1b0000
[   34.199918] GPR00: 00000000 df1b1f00 dfa4d2c0 e10b0000 00000001 e10ac728
ffffffff 00000000
[   34.208295] GPR08: 0000002c df1b0000 c0bfd000 0000006c 00000005 10024204
1ffebe00 1001c598
[   34.216672] GPR16: 00000000 00000000 00000003 1001d574 00000000 10005b10
00000000 00000000
[   34.225049] GPR24: 1001d428 00000000 000227c3 1001d160 c04a6c80 c04a6c8c
000000000 e10b0000
[   34.233636] NIP [e10b0000] rio_init+0x0/0x68 [rio_core]
[   34.238856] LR [c0001dc0] do_one_initcall+0x74/0x220
[   34.243807] Call Trace:
[   34.246253] [df1b1f20] [c00617ec] sys_init_module+0xf4/0x250
[   34.251912] [df1b1f40] [c000fa18] ret_from_syscall+0x0/0x3c
[   34.257473] Instruction dump:
[   34.260434] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX
[   34.268197] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX <9421fff0> 3c60e10b
7c0802a6 3863c37c
[   34.276187] ---[ end trace 72ab109d9f179c15 ]---




      __________________________________________________________________________________
See what's on at the movies in your area. Find out now: http://au.movies.yahoo.com/session-times/


More information about the Linuxppc-dev mailing list