diff options
author | Ulrich Obergfell <uobergfe@redhat.com> | 2015-11-05 21:44:53 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-11-05 22:34:48 -0500 |
commit | a2a45b85ec45db4b041ea5d93b21033dbc3cc0fc (patch) | |
tree | dc9ae8545451962f41fd518194b29977080e3842 /kernel/watchdog.c | |
parent | 8614ddef82139d08234dbf681188f9bcddae9f03 (diff) |
kernel/watchdog.c: remove {get|put}_online_cpus() from watchdog_{park|unpark}_threads()
watchdog_{park|unpark}_threads() are now called in code paths that protect
themselves against CPU hotplug, so {get|put}_online_cpus() calls are
redundant and can be removed.
Signed-off-by: Ulrich Obergfell <uobergfe@redhat.com>
Acked-by: Don Zickus <dzickus@redhat.com>
Reviewed-by: Aaron Tomlin <atomlin@redhat.com>
Cc: Ulrich Obergfell <uobergfe@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/watchdog.c')
-rw-r--r-- | kernel/watchdog.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/watchdog.c b/kernel/watchdog.c index 13fdda1a4c91..84c4744d1977 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c | |||
@@ -683,33 +683,35 @@ static struct smp_hotplug_thread watchdog_threads = { | |||
683 | * be parked and the watchdog threads of other CPUs can still be runnable. | 683 | * be parked and the watchdog threads of other CPUs can still be runnable. |
684 | * Callers are expected to handle this special condition as appropriate in | 684 | * Callers are expected to handle this special condition as appropriate in |
685 | * their context. | 685 | * their context. |
686 | * | ||
687 | * This function may only be called in a context that is protected against | ||
688 | * races with CPU hotplug - for example, via get_online_cpus(). | ||
686 | */ | 689 | */ |
687 | static int watchdog_park_threads(void) | 690 | static int watchdog_park_threads(void) |
688 | { | 691 | { |
689 | int cpu, ret = 0; | 692 | int cpu, ret = 0; |
690 | 693 | ||
691 | get_online_cpus(); | ||
692 | for_each_watchdog_cpu(cpu) { | 694 | for_each_watchdog_cpu(cpu) { |
693 | ret = kthread_park(per_cpu(softlockup_watchdog, cpu)); | 695 | ret = kthread_park(per_cpu(softlockup_watchdog, cpu)); |
694 | if (ret) | 696 | if (ret) |
695 | break; | 697 | break; |
696 | } | 698 | } |
697 | put_online_cpus(); | ||
698 | 699 | ||
699 | return ret; | 700 | return ret; |
700 | } | 701 | } |
701 | 702 | ||
702 | /* | 703 | /* |
703 | * unpark all watchdog threads that are specified in 'watchdog_cpumask' | 704 | * unpark all watchdog threads that are specified in 'watchdog_cpumask' |
705 | * | ||
706 | * This function may only be called in a context that is protected against | ||
707 | * races with CPU hotplug - for example, via get_online_cpus(). | ||
704 | */ | 708 | */ |
705 | static void watchdog_unpark_threads(void) | 709 | static void watchdog_unpark_threads(void) |
706 | { | 710 | { |
707 | int cpu; | 711 | int cpu; |
708 | 712 | ||
709 | get_online_cpus(); | ||
710 | for_each_watchdog_cpu(cpu) | 713 | for_each_watchdog_cpu(cpu) |
711 | kthread_unpark(per_cpu(softlockup_watchdog, cpu)); | 714 | kthread_unpark(per_cpu(softlockup_watchdog, cpu)); |
712 | put_online_cpus(); | ||
713 | } | 715 | } |
714 | 716 | ||
715 | /* | 717 | /* |