sched/core: Update preempt_notifier_key to modern API
authorDavidlohr Bueso <dave@stgolabs.net>
Mon, 26 Mar 2018 21:09:26 +0000 (14:09 -0700)
committerIngo Molnar <mingo@kernel.org>
Tue, 27 Mar 2018 05:51:45 +0000 (07:51 +0200)
No changes in refcount semantics, use DEFINE_STATIC_KEY_FALSE()
for initialization and replace:

  static_key_slow_inc|dec()   =>   static_branch_inc|dec()
  static_key_false()          =>   static_branch_unlikely()

Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: akpm@linux-foundation.org
Link: http://lkml.kernel.org/r/20180326210929.5244-4-dave@stgolabs.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/sched/core.c

index b249adbf2a486d2fde929749936fdf4a640451f6..de440456f15cc85c5de8eaec55ee877dacbbf7ab 100644 (file)
@@ -2462,17 +2462,17 @@ void wake_up_new_task(struct task_struct *p)
 
 #ifdef CONFIG_PREEMPT_NOTIFIERS
 
-static struct static_key preempt_notifier_key = STATIC_KEY_INIT_FALSE;
+static DEFINE_STATIC_KEY_FALSE(preempt_notifier_key);
 
 void preempt_notifier_inc(void)
 {
-       static_key_slow_inc(&preempt_notifier_key);
+       static_branch_inc(&preempt_notifier_key);
 }
 EXPORT_SYMBOL_GPL(preempt_notifier_inc);
 
 void preempt_notifier_dec(void)
 {
-       static_key_slow_dec(&preempt_notifier_key);
+       static_branch_dec(&preempt_notifier_key);
 }
 EXPORT_SYMBOL_GPL(preempt_notifier_dec);
 
@@ -2482,7 +2482,7 @@ EXPORT_SYMBOL_GPL(preempt_notifier_dec);
  */
 void preempt_notifier_register(struct preempt_notifier *notifier)
 {
-       if (!static_key_false(&preempt_notifier_key))
+       if (!static_branch_unlikely(&preempt_notifier_key))
                WARN(1, "registering preempt_notifier while notifiers disabled\n");
 
        hlist_add_head(&notifier->link, &current->preempt_notifiers);
@@ -2511,7 +2511,7 @@ static void __fire_sched_in_preempt_notifiers(struct task_struct *curr)
 
 static __always_inline void fire_sched_in_preempt_notifiers(struct task_struct *curr)
 {
-       if (static_key_false(&preempt_notifier_key))
+       if (static_branch_unlikely(&preempt_notifier_key))
                __fire_sched_in_preempt_notifiers(curr);
 }
 
@@ -2529,7 +2529,7 @@ static __always_inline void
 fire_sched_out_preempt_notifiers(struct task_struct *curr,
                                 struct task_struct *next)
 {
-       if (static_key_false(&preempt_notifier_key))
+       if (static_branch_unlikely(&preempt_notifier_key))
                __fire_sched_out_preempt_notifiers(curr, next);
 }