소스 검색

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 16 년 전
부모
커밋
7920c4d658
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  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:
 	 * Remove this CPU:
 	 */
 	 */
 	cpu_clear(smp_processor_id(), cpu_online_map);
 	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)
 void smp_send_stop(void)