diff --git a/kernel/watchdog_hld.c b/kernel/watchdog_hld.c index 43832b102369355b48b017574742e3a5ebfe2b2c..a5aff8ffa48ced2e4a7cdda2ad0b432a6bde656f 100644 --- a/kernel/watchdog_hld.c +++ b/kernel/watchdog_hld.c @@ -508,14 +508,17 @@ void __init hardlockup_detector_perf_restart(void) */ int __init hardlockup_detector_perf_init(void) { - int ret = hardlockup_detector_event_create(); + int ret; + preempt_disable(); + ret = hardlockup_detector_event_create(); if (ret) { pr_info("Perf NMI watchdog permanently disabled\n"); } else { perf_event_release_kernel(this_cpu_read(watchdog_ev)); this_cpu_write(watchdog_ev, NULL); } + preempt_enable(); return ret; } #endif /* CONFIG_HARDLOCKUP_DETECTOR_PERF */