Merge tag 'mailbox-v4.20' of git://git.linaro.org/landing-teams/working/fujitsu/integ...
[sfrench/cifs-2.6.git] / arch / mips / loongson64 / loongson-3 / smp.c
index fea95d00326912ede09aba8f2c54d76ad9cfefcc..b5c1e0aa955e696e1502b975735c4ca7e12e2065 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/sched/task_stack.h>
 #include <linux/smp.h>
 #include <linux/cpufreq.h>
+#include <linux/kexec.h>
 #include <asm/processor.h>
 #include <asm/time.h>
 #include <asm/clock.h>
@@ -349,7 +350,7 @@ static void loongson3_smp_finish(void)
        write_c0_compare(read_c0_count() + mips_hpt_frequency/HZ);
        local_irq_enable();
        loongson3_ipi_write64(0,
-                       (void *)(ipi_mailbox_buf[cpu_logical_map(cpu)]+0x0));
+                       ipi_mailbox_buf[cpu_logical_map(cpu)] + 0x0);
        pr_info("CPU#%d finished, CP0_ST=%x\n",
                        smp_processor_id(), read_c0_status());
 }
@@ -416,13 +417,13 @@ static int loongson3_boot_secondary(int cpu, struct task_struct *idle)
                        cpu, startargs[0], startargs[1], startargs[2]);
 
        loongson3_ipi_write64(startargs[3],
-                       (void *)(ipi_mailbox_buf[cpu_logical_map(cpu)]+0x18));
+                       ipi_mailbox_buf[cpu_logical_map(cpu)] + 0x18);
        loongson3_ipi_write64(startargs[2],
-                       (void *)(ipi_mailbox_buf[cpu_logical_map(cpu)]+0x10));
+                       ipi_mailbox_buf[cpu_logical_map(cpu)] + 0x10);
        loongson3_ipi_write64(startargs[1],
-                       (void *)(ipi_mailbox_buf[cpu_logical_map(cpu)]+0x8));
+                       ipi_mailbox_buf[cpu_logical_map(cpu)] + 0x8);
        loongson3_ipi_write64(startargs[0],
-                       (void *)(ipi_mailbox_buf[cpu_logical_map(cpu)]+0x0));
+                       ipi_mailbox_buf[cpu_logical_map(cpu)] + 0x0);
        return 0;
 }
 
@@ -749,4 +750,7 @@ const struct plat_smp_ops loongson3_smp_ops = {
        .cpu_disable = loongson3_cpu_disable,
        .cpu_die = loongson3_cpu_die,
 #endif
+#ifdef CONFIG_KEXEC
+       .kexec_nonboot_cpu = kexec_nonboot_cpu_jump,
+#endif
 };