Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a53efe5f authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

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: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 56f15e51
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -4692,8 +4692,10 @@ void idle_task_exit(void)

	BUG_ON(cpu_online(smp_processor_id()));

	if (mm != &init_mm)
	if (mm != &init_mm) {
		switch_mm(mm, &init_mm, current);
		finish_arch_post_lock_switch();
	}
	mmdrop(mm);
}

+3 −0
Original line number Diff line number Diff line
@@ -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);