aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/watchdog
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/watchdog')
-rw-r--r--drivers/watchdog/octeon-wdt-main.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/watchdog/octeon-wdt-main.c b/drivers/watchdog/octeon-wdt-main.c
index 461208831428..4baf2d788920 100644
--- a/drivers/watchdog/octeon-wdt-main.c
+++ b/drivers/watchdog/octeon-wdt-main.c
@@ -708,10 +708,13 @@ static int __init octeon_wdt_init(void)
708 708
709 cpumask_clear(&irq_enabled_cpus); 709 cpumask_clear(&irq_enabled_cpus);
710 710
711 cpu_notifier_register_begin();
711 for_each_online_cpu(cpu) 712 for_each_online_cpu(cpu)
712 octeon_wdt_setup_interrupt(cpu); 713 octeon_wdt_setup_interrupt(cpu);
713 714
714 register_hotcpu_notifier(&octeon_wdt_cpu_notifier); 715 __register_hotcpu_notifier(&octeon_wdt_cpu_notifier);
716 cpu_notifier_register_done();
717
715out: 718out:
716 return ret; 719 return ret;
717} 720}
@@ -725,7 +728,8 @@ static void __exit octeon_wdt_cleanup(void)
725 728
726 misc_deregister(&octeon_wdt_miscdev); 729 misc_deregister(&octeon_wdt_miscdev);
727 730
728 unregister_hotcpu_notifier(&octeon_wdt_cpu_notifier); 731 cpu_notifier_register_begin();
732 __unregister_hotcpu_notifier(&octeon_wdt_cpu_notifier);
729 733
730 for_each_online_cpu(cpu) { 734 for_each_online_cpu(cpu) {
731 int core = cpu2core(cpu); 735 int core = cpu2core(cpu);
@@ -734,6 +738,9 @@ static void __exit octeon_wdt_cleanup(void)
734 /* Free the interrupt handler */ 738 /* Free the interrupt handler */
735 free_irq(OCTEON_IRQ_WDOG0 + core, octeon_wdt_poke_irq); 739 free_irq(OCTEON_IRQ_WDOG0 + core, octeon_wdt_poke_irq);
736 } 740 }
741
742 cpu_notifier_register_done();
743
737 /* 744 /*
738 * Disable the boot-bus memory, the code it points to is soon 745 * Disable the boot-bus memory, the code it points to is soon
739 * to go missing. 746 * to go missing.