|
@@ -708,10 +708,13 @@ static int __init octeon_wdt_init(void)
|
|
|
|
|
|
cpumask_clear(&irq_enabled_cpus);
|
|
|
|
|
|
+ cpu_notifier_register_begin();
|
|
|
for_each_online_cpu(cpu)
|
|
|
octeon_wdt_setup_interrupt(cpu);
|
|
|
|
|
|
- register_hotcpu_notifier(&octeon_wdt_cpu_notifier);
|
|
|
+ __register_hotcpu_notifier(&octeon_wdt_cpu_notifier);
|
|
|
+ cpu_notifier_register_done();
|
|
|
+
|
|
|
out:
|
|
|
return ret;
|
|
|
}
|
|
@@ -725,7 +728,8 @@ static void __exit octeon_wdt_cleanup(void)
|
|
|
|
|
|
misc_deregister(&octeon_wdt_miscdev);
|
|
|
|
|
|
- unregister_hotcpu_notifier(&octeon_wdt_cpu_notifier);
|
|
|
+ cpu_notifier_register_begin();
|
|
|
+ __unregister_hotcpu_notifier(&octeon_wdt_cpu_notifier);
|
|
|
|
|
|
for_each_online_cpu(cpu) {
|
|
|
int core = cpu2core(cpu);
|
|
@@ -734,6 +738,9 @@ static void __exit octeon_wdt_cleanup(void)
|
|
|
/* Free the interrupt handler */
|
|
|
free_irq(OCTEON_IRQ_WDOG0 + core, octeon_wdt_poke_irq);
|
|
|
}
|
|
|
+
|
|
|
+ cpu_notifier_register_done();
|
|
|
+
|
|
|
/*
|
|
|
* Disable the boot-bus memory, the code it points to is soon
|
|
|
* to go missing.
|