]> git.ipfire.org Git - thirdparty/linux.git/blobdiff - arch/mips/kernel/smp-cps.c
Merge tag 'mips_6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
[thirdparty/linux.git] / arch / mips / kernel / smp-cps.c
index 92575222713bcea1c1c82d73d2ba41cbe012157a..dd55d59b88db34e07924e1f64b7e139a8e56274b 100644 (file)
@@ -492,8 +492,7 @@ void play_dead(void)
                }
        }
 
-       /* This CPU has chosen its way out */
-       (void)cpu_report_death();
+       cpuhp_ap_report_dead();
 
        cps_shutdown_this_cpu(cpu_death);
 
@@ -516,7 +515,9 @@ static void wait_for_sibling_halt(void *ptr_cpu)
        } while (!(halted & TCHALT_H));
 }
 
-static void cps_cpu_die(unsigned int cpu)
+static void cps_cpu_die(unsigned int cpu) { }
+
+static void cps_cleanup_dead_cpu(unsigned cpu)
 {
        unsigned core = cpu_core(&cpu_data[cpu]);
        unsigned int vpe_id = cpu_vpe_id(&cpu_data[cpu]);
@@ -524,12 +525,6 @@ static void cps_cpu_die(unsigned int cpu)
        unsigned stat;
        int err;
 
-       /* Wait for the cpu to choose its way out */
-       if (!cpu_wait_death(cpu, 5)) {
-               pr_err("CPU%u: didn't offline\n", cpu);
-               return;
-       }
-
        /*
         * Now wait for the CPU to actually offline. Without doing this that
         * offlining may race with one or more of:
@@ -613,6 +608,7 @@ static const struct plat_smp_ops cps_smp_ops = {
 #ifdef CONFIG_HOTPLUG_CPU
        .cpu_disable            = cps_cpu_disable,
        .cpu_die                = cps_cpu_die,
+       .cleanup_dead_cpu       = cps_cleanup_dead_cpu,
 #endif
 #ifdef CONFIG_KEXEC
        .kexec_nonboot_cpu      = cps_kexec_nonboot_cpu,