aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2012-10-26 11:17:44 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2014-02-21 02:50:17 -0500
commita53efe5ff88d0283bae8a2c2fa066d0fff31dc91 (patch)
tree8b500f9df4ad79e7159ad08ec8231278166eb499 /kernel
parent56f15e518cfdc732bd4e4da90e0c9cf2fc4e7c1b (diff)
sched/mm: call finish_arch_post_lock_switch in idle_task_exit and use_mm
The finish_arch_post_lock_switch is called at the end of the task switch after all locks have been released. In concept it is paired with the switch_mm function, but the current code only does the call in finish_task_switch. Add the call to idle_task_exit and use_mm. One use case for the additional calls is s390 which will use finish_arch_post_lock_switch to wait for the completion of TLB flush operations. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched/core.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index b46131ef6aab..4b0739c9558e 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -4692,8 +4692,10 @@ void idle_task_exit(void)
4692 4692
4693 BUG_ON(cpu_online(smp_processor_id())); 4693 BUG_ON(cpu_online(smp_processor_id()));
4694 4694
4695 if (mm != &init_mm) 4695 if (mm != &init_mm) {
4696 switch_mm(mm, &init_mm, current); 4696 switch_mm(mm, &init_mm, current);
4697 finish_arch_post_lock_switch();
4698 }
4697 mmdrop(mm); 4699 mmdrop(mm);
4698} 4700}
4699 4701