[PATCH] powerpc: sched fixups
- Re-add a hunk lost during merge: ppc64 is missing the hunk that disables preempt on the secondary CPUs before they call cpu_idle(). - ppc's cpu_idle() had the need_resched() test wrong. Cc: Nick Piggin <nickpiggin@yahoo.com.au> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
a47ab9371e
Коммит
e4d76e1c0b
|
@ -510,6 +510,7 @@ int __devinit start_secondary(void *unused)
|
||||||
|
|
||||||
smp_store_cpu_info(cpu);
|
smp_store_cpu_info(cpu);
|
||||||
set_dec(tb_ticks_per_jiffy);
|
set_dec(tb_ticks_per_jiffy);
|
||||||
|
preempt_disable();
|
||||||
cpu_callin_map[cpu] = 1;
|
cpu_callin_map[cpu] = 1;
|
||||||
|
|
||||||
smp_ops->setup_cpu(cpu);
|
smp_ops->setup_cpu(cpu);
|
||||||
|
|
|
@ -63,7 +63,7 @@ void cpu_idle(void)
|
||||||
int cpu = smp_processor_id();
|
int cpu = smp_processor_id();
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
while (need_resched()) {
|
while (!need_resched()) {
|
||||||
if (ppc_md.idle != NULL)
|
if (ppc_md.idle != NULL)
|
||||||
ppc_md.idle();
|
ppc_md.idle();
|
||||||
else
|
else
|
||||||
|
|
Загрузка…
Ссылка в новой задаче