scheduler fix
Subsystems (2)
Linus,
Please pull the latest sched-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-urgent-for-linus
HEAD: 62d08aec6a9f4b45cc9cba1e3b2855995df133e6 Merge branch 'context_tracking/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into sched/urgent
A context tracking ARM build and functional fix.
Thanks,
Ingo
------------------>
Frederic Weisbecker (1):
arm: Fix build error with context tracking calls
arch/arm/kernel/entry-header.S | 8 ++++---- kernel/context_tracking.c | 12 ++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-)
arch/arm/kernel/entry-header.S +4 -4
@@ -329,10 +329,10 @@ #ifdef CONFIG_CONTEXT_TRACKING .if \save stmdb sp!, {r0-r3, ip, lr} - bl user_exit + bl context_tracking_user_exit ldmia sp!, {r0-r3, ip, lr} .else - bl user_exit + bl context_tracking_user_exit .endif #endif .endm
@@ -341,10 +341,10 @@ #ifdef CONFIG_CONTEXT_TRACKING .if \save stmdb sp!, {r0-r3, ip, lr} - bl user_enter + bl context_tracking_user_enter ldmia sp!, {r0-r3, ip, lr} .else - bl user_enter + bl context_tracking_user_enter .endif #endif .endm
kernel/context_tracking.c +12 -0
@@ -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 ;