Commit a53efe5ff88d0283bae8a2c2fa066d0fff31dc91

Authored by Martin Schwidefsky
1 parent 56f15e518c

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>

Showing 2 changed files with 6 additions and 1 deletions Side-by-side Diff

... ... @@ -4692,8 +4692,10 @@
4692 4692  
4693 4693 BUG_ON(cpu_online(smp_processor_id()));
4694 4694  
4695   - if (mm != &init_mm)
  4695 + if (mm != &init_mm) {
4696 4696 switch_mm(mm, &init_mm, current);
  4697 + finish_arch_post_lock_switch();
  4698 + }
4697 4699 mmdrop(mm);
4698 4700 }
4699 4701  
... ... @@ -31,6 +31,9 @@
31 31 tsk->mm = mm;
32 32 switch_mm(active_mm, mm, tsk);
33 33 task_unlock(tsk);
  34 +#ifdef finish_arch_post_lock_switch
  35 + finish_arch_post_lock_switch();
  36 +#endif
34 37  
35 38 if (active_mm != mm)
36 39 mmdrop(active_mm);