summaryrefslogtreecommitdiff
path: root/mm
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2012-10-26 19:17:44 +0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2014-02-21 11:50:17 +0400
commita53efe5ff88d0283bae8a2c2fa066d0fff31dc91 (patch)
tree8b500f9df4ad79e7159ad08ec8231278166eb499 /mm
parent56f15e518cfdc732bd4e4da90e0c9cf2fc4e7c1b (diff)
downloadlinux-a53efe5ff88d0283bae8a2c2fa066d0fff31dc91.tar.xz
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 'mm')
-rw-r--r--mm/mmu_context.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/mm/mmu_context.c b/mm/mmu_context.c
index 8a8cd0265e52..f802c2d216a7 100644
--- a/mm/mmu_context.c
+++ b/mm/mmu_context.c
@@ -31,6 +31,9 @@ void use_mm(struct mm_struct *mm)
tsk->mm = mm;
switch_mm(active_mm, mm, tsk);
task_unlock(tsk);
+#ifdef finish_arch_post_lock_switch
+ finish_arch_post_lock_switch();
+#endif
if (active_mm != mm)
mmdrop(active_mm);