Explorar o código

MIPS: SMP: Don't reenable interrupts in stop_this_cpu; use WAIT instruction.

Noticed by Anirban Sinha <ASinha@zeugmasystems.com>; patch by me.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Ralf Baechle %!s(int64=16) %!d(string=hai) anos
pai
achega
7920c4d658
Modificáronse 1 ficheiros con 4 adicións e 2 borrados
  1. 4 2
      arch/mips/kernel/smp.c

+ 4 - 2
arch/mips/kernel/smp.c

@@ -163,8 +163,10 @@ static void stop_this_cpu(void *dummy)
 	 * Remove this CPU:
 	 */
 	cpu_clear(smp_processor_id(), cpu_online_map);
-	local_irq_enable();	/* May need to service _machine_restart IPI */
-	for (;;);		/* Wait if available. */
+	for (;;) {
+		if (cpu_wait)
+			(*cpu_wait)();		/* Wait if available. */
+	}
 }
 
 void smp_send_stop(void)