|
@@ -8,6 +8,7 @@
|
|
|
* option) any later version.
|
|
|
*/
|
|
|
|
|
|
+#include <linux/cpu.h>
|
|
|
#include <linux/delay.h>
|
|
|
#include <linux/io.h>
|
|
|
#include <linux/irqchip/mips-gic.h>
|
|
@@ -408,7 +409,6 @@ static int cps_cpu_disable(void)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static DECLARE_COMPLETION(cpu_death_chosen);
|
|
|
static unsigned cpu_death_sibling;
|
|
|
static enum {
|
|
|
CPU_DEATH_HALT,
|
|
@@ -444,7 +444,7 @@ void play_dead(void)
|
|
|
}
|
|
|
|
|
|
/* This CPU has chosen its way out */
|
|
|
- complete(&cpu_death_chosen);
|
|
|
+ (void)cpu_report_death();
|
|
|
|
|
|
if (cpu_death == CPU_DEATH_HALT) {
|
|
|
vpe_id = cpu_vpe_id(&cpu_data[cpu]);
|
|
@@ -493,8 +493,7 @@ static void cps_cpu_die(unsigned int cpu)
|
|
|
int err;
|
|
|
|
|
|
/* Wait for the cpu to choose its way out */
|
|
|
- if (!wait_for_completion_timeout(&cpu_death_chosen,
|
|
|
- msecs_to_jiffies(5000))) {
|
|
|
+ if (!cpu_wait_death(cpu, 5)) {
|
|
|
pr_err("CPU%u: didn't offline\n", cpu);
|
|
|
return;
|
|
|
}
|