Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit ee89e71e authored by Ulrich Obergfell's avatar Ulrich Obergfell Committed by Linus Torvalds
Browse files

kernel/watchdog.c: avoid race between lockup detector suspend/resume and CPU hotplug



The lockup detector suspend/resume interface that was introduced by
commit 8c073d27 ("watchdog: introduce watchdog_suspend() and
watchdog_resume()") does not protect itself against races with CPU
hotplug.  Hence, theoretically it is possible that a new watchdog thread
is started on a hotplugged CPU while the lockup detector is suspended,
and the thread could thus interfere unexpectedly with the code that
requested to suspend the lockup detector.

Avoid the race by calling

  get_online_cpus() in lockup_detector_suspend()
  put_online_cpus() in lockup_detector_resume()

Signed-off-by: default avatarUlrich Obergfell <uobergfe@redhat.com>
Acked-by: default avatarDon Zickus <dzickus@redhat.com>
Reviewed-by: default avatarAaron Tomlin <atomlin@redhat.com>
Cc: Ulrich Obergfell <uobergfe@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ac1f5912
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment