Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c64af645 authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Michael Ellerman
Browse files

powerpc: Add struct smp_ops_t.cause_nmi_ipi operation



Have the NMI IPI code use this op when the platform defines it.

Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent ddd703ca
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ struct smp_ops_t {
#ifdef CONFIG_PPC_SMP_MUXED_IPI
	void  (*cause_ipi)(int cpu);
#endif
	int   (*cause_nmi_ipi)(int cpu);
	void  (*probe)(void);
	int   (*kick_cpu)(int nr);
	int   (*prepare_cpu)(int nr);
+3 −0
Original line number Diff line number Diff line
@@ -417,6 +417,9 @@ int smp_handle_nmi_ipi(struct pt_regs *regs)

static void do_smp_send_nmi_ipi(int cpu)
{
	if (smp_ops->cause_nmi_ipi && smp_ops->cause_nmi_ipi(cpu))
		return;

	if (cpu >= 0) {
		do_message_pass(cpu, PPC_MSG_NMI_IPI);
	} else {
+1 −0
Original line number Diff line number Diff line
@@ -344,6 +344,7 @@ static int smp_85xx_kick_cpu(int nr)
}

struct smp_ops_t smp_85xx_ops = {
	.cause_nmi_ipi = NULL,
	.kick_cpu = smp_85xx_kick_cpu,
	.cpu_bootable = smp_generic_cpu_bootable,
#ifdef CONFIG_HOTPLUG_CPU
+1 −0
Original line number Diff line number Diff line
@@ -105,6 +105,7 @@ smp_86xx_setup_cpu(int cpu_nr)


struct smp_ops_t smp_86xx_ops = {
	.cause_nmi_ipi = NULL,
	.message_pass = smp_mpic_message_pass,
	.probe = smp_mpic_probe,
	.kick_cpu = smp_86xx_kick_cpu,
+1 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ static void smp_chrp_setup_cpu(int cpu_nr)

/* CHRP with openpic */
struct smp_ops_t chrp_smp_ops = {
	.cause_nmi_ipi = NULL,
	.message_pass = smp_mpic_message_pass,
	.probe = smp_mpic_probe,
	.kick_cpu = smp_chrp_kick_cpu,
Loading