Abolish per-CPU RTAS args

Nathan Lynch nathanl at austin.ibm.com
Sun Jun 27 19:05:19 EST 2004


David Gibson wrote:
> On Fri, Jun 25, 2004 at 04:25:34PM -0500, Joel Schopp wrote:
>>cpu 0x0: Vector: 700 (Program Check) at [c0000000005739f0]
>>    pc: c00000000003ab1c: .rtas_stop_self+0x34/0x70
>>    lr: c00000000003e25c: .cpu_die+0x30/0x3c
>>    sp: c000000000573c70
>>   msr: 8000000000021032
>>  current = 0xc000000000605810
>>  paca    = 0xc000000000574000
>>    pid   = 0, comm = swapper
>>enter ? for help
>>0:mon> t
>>[c000000000573d00] c00000000003e25c .cpu_die+0x30/0x3c
>>[c000000000573d70] c000000000014ee8 .default_idle+0xe8/0xec
>>[c000000000573e00] c0000000000151d0 .cpu_idle+0x2c/0x44
>>[c000000000573e70] c00000000000c548 .rest_init+0x74/0x8c
>>[c000000000573ef0] c0000000005218a0 .start_kernel+0x224/0x284
>>[c000000000573f90] c00000000000c270 .__setup_cpu_power3+0x0/0x4
>>
>>Don't have time to investigate this much now, but it looks like the
>>rtas_stop_self didn't work so well.  Will poke at it next week.
>
>
> Bother.  I wonder if it's hitting the BUG_ON() in there - if you get a
> chance, can you see if there is a BUG message before it enters xmon?

I don't have a way to test this at the moment, but moving this part
(from setup.c):

+#if defined(CONFIG_HOTPLUG_CPU) &&  !defined(CONFIG_PPC_PMAC)
+	rtas_stop_self_args.token = rtas_token("stop-self");
+#endif /* CONFIG_HOTPLUG_CPU && !CONFIG_PPC_PMAC */

down a few lines to after finish_device_tree() has been called should
fix it.  rtas_token() won't work until after finish_device_tree() has run.

Nathan

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





More information about the Linuxppc64-dev mailing list