aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoff Levand <geoff@infradead.org>2012-03-12 17:16:46 -0700
committerViresh Kumar <viresh.kumar@linaro.org>2012-07-12 09:29:08 +0100
commita2dc36b0928ced4255ceb453ee160f492e0399a2 (patch)
tree899d65a23795fc1c7d0709af1563ce98985d214c
parent90ac0bae9c9b42576cef805880e301630ef2b5cf (diff)
arm: Exit RCU idle mode when we schedule before resuming userspaceunused-nohz-adaptive-tickless-v2
When a CPU running tickless resumes userspace, it enters into RCU idle mode. But if we are preempted on kernel exit, after we entered RCU idle mode but before we actually resumed userspace, through an explicit call to schedule, we need to re-enable RCU in case this function makes use of RCU read side critical section and also for the next task to be scheduled. NOTE: If we are preempted while running adaptive tickless, it means we will receive an IPI that will escape the RCU idle mode for us. So this patch is useful only when such IPI arrives too late. Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Geoff Levand <geoff@infradead.org>
-rw-r--r--arch/arm/kernel/entry-common.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 4afed88d250..ee79c7baab7 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -67,7 +67,7 @@ work_pending:
b ret_slow_syscall @ Check work again
work_resched:
- bl schedule
+ bl schedule_user
/*
* "slow" syscall return path. "why" tells us if this was a real syscall.
*/