diff options
author | Ingo Molnar | 2013-09-28 08:50:09 +0200 |
---|---|---|
committer | Ingo Molnar | 2013-09-28 08:50:09 +0200 |
commit | 62d08aec6a9f4b45cc9cba1e3b2855995df133e6 (patch) | |
tree | 51bddd857fb0eb03cd16c9ae17369e81b8f970f4 /kernel | |
parent | 82dfaa58a79c121be3611ce549dec806f2e6004f (diff) | |
parent | 0c06a5d4b13cd66c833805a0d1db76b977944aac (diff) |
Merge branch 'context_tracking/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into sched/urgent
Pull context tracking ARM fix from Frederic Weisbecker.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/context_tracking.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c index 247091bf0587..859c8dfd78a1 100644 --- a/kernel/context_tracking.c +++ b/kernel/context_tracking.c @@ -51,6 +51,15 @@ void context_tracking_user_enter(void) unsigned long flags; /* + * Repeat the user_enter() check here because some archs may be calling + * this from asm and if no CPU needs context tracking, they shouldn't + * go further. Repeat the check here until they support the static key + * check. + */ + if (!static_key_false(&context_tracking_enabled)) + return; + + /* * Some contexts may involve an exception occuring in an irq, * leading to that nesting: * rcu_irq_enter() rcu_user_exit() rcu_user_exit() rcu_irq_exit() @@ -151,6 +160,9 @@ void context_tracking_user_exit(void) { unsigned long flags; + if (!static_key_false(&context_tracking_enabled)) + return; + if (in_interrupt()) return; |