David S. Miller wrote: > From: Nick Piggin > Date: Mon, 16 May 2005 14:21:54 +1000 > > I was about to test this on sparc64 real quick, but noticed > the following with just a quick glance of the sparc64 specific > changes: > > >> void cpu_idle(void) >> { >>+ cpuinfo_sparc cpuinfo = cpu_data(smp_processor_id()); > > > Local copy on the stack? Surely you meant a pointer > instead. > Indeed, thank you. How does the following look? > I'll test this once you work out that obvious bug. > The other obvious problem with sparc64 that I didn't tackle is your secondary CPU bringup - those CPUs will be calling cpu_idle with preempt enabled as was previously required, but now should have preempt disabled (ie. arch/sparc64/kernel/trampoline.S: call cpu_idle) If you haven't got preempt working on your arch, then in practice this won't bother you...