diff mbox

[07/10] powerpc: add NMI IPI infrastructure

Message ID 20170203214524.3ad3729a@roar.ozlabs.ibm.com (mailing list archive)
State Accepted
Headers show

Commit Message

Nicholas Piggin Feb. 3, 2017, 11:45 a.m. UTC
On Tue, 20 Dec 2016 04:30:08 +1000
Nicholas Piggin <npiggin@gmail.com> wrote:

> +static void do_smp_send_nmi_ipi(int cpu)
> +{
> +	if (cpu >= 0) {
> +		do_message_pass(cpu, PPC_MSG_NMI_IPI);
> +	} else {
> +		unsigned int c;
> +
> +		for_each_online_cpu(c) {
> +			if (c == raw_smp_processor_id())
> +				continue;
> +			do_message_pass(cpu, PPC_MSG_NMI_IPI);

Okay this has a bug in the fallback path. Needs the following
incremental patch. sysrq+x works okay with this (tested in mambo),
and also recovers with "x" okay.

Thanks,
Nick

---
 arch/powerpc/kernel/smp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff mbox

Patch

diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 81256522985d..a9f8c70d1033 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -420,12 +420,12 @@  static void do_smp_send_nmi_ipi(int cpu)
 	if (cpu >= 0) {
 		do_message_pass(cpu, PPC_MSG_NMI_IPI);
 	} else {
-		unsigned int c;
+		int c;
 
 		for_each_online_cpu(c) {
 			if (c == raw_smp_processor_id())
 				continue;
-			do_message_pass(cpu, PPC_MSG_NMI_IPI);
+			do_message_pass(c, PPC_MSG_NMI_IPI);
 		}
 	}
 }