rtas_call uses kmalloc before the memory subsystem is up

Anton Blanchard anton at samba.org
Mon Aug 16 08:19:51 EST 2004


Marcus and Olaf hit this problem:

reserve_bootmem 0 870b30
reserve_bootmem 4400000 154000
reserve_bootmem f92c000 6d4000
reserve_bootmem 20ffbc000 42000
reserve_bootmem 20fffef08 10f8
Boot arguments: root=/dev/sdb3
Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=128 NUMA PSERIES LPAR
NIP: C00000000008571C XER: 0000000000000000 LR: C00000000003470C
REGS: c0000000003fb760 TRAP: 0300   Not tainted  (2.6.8.1-tst-timer4)
MSR: 8000000000001032 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 0000000000000000, DSISR: 0000000040000000
TASK: c00000000049c160[0] 'swapper' THREAD: c0000000003f8000 CPU: 0
GPR00: 0000000000000000 C0000000003FB9E0 C0000000005E8540 0000000000000000
GPR04: 0000000000000020 0000000000000000 0000000000000000 0000000000000005
GPR08: C00000000066D16C C0000000004BA918 8000000000001032 0000000000000000
GPR12: 000000000FD4D8A8 C0000000003FC000 0000000000000000 0000000000000000
GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
GPR20: 0000000000230000 C0000000003FBD70 000000000006040F 0000000000000001
GPR24: 0000000000000001 0000000000000000 0000000000000000 000000000000002B
GPR28: 8000000000001032 0000000000000001 FFFFFFFFFFFFFFFF 8000000000001032
NIP [c00000000008571c] .kmem_cache_alloc+0x28/0x78
LR [c00000000003470c] .rtas_call+0x260/0x284
Call Trace:
[c0000000003fba60] [c00000000003470c] .rtas_call+0x260/0x284
[c0000000003fbb10] [c00000000002eb6c] .early_enable_eeh+0x2c8/0x3cc
[c0000000003fbc60] [c00000000002ca4c] .traverse_pci_devices+0x178/0x188
[c0000000003fbd00] [c0000000003cf5c4] .eeh_init+0x170/0x204
[c0000000003fbda0] [c0000000003d1010] .chrp_setup_arch+0x60/0x154
[c0000000003fbe30] [c0000000003cce08] .setup_arch+0x170/0x200
[c0000000003fbed0] [c0000000003c7520] .start_kernel+0x78/0x33c
[c0000000003fbf90] [c00000000000c038] .__setup_cpu_power3+0x0/0x4

rtas_call is doing a kmalloc before the memory subsystem is up, but only
when we hit an error.

Anton

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list