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

Commit 64da010d authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "sched: Fix spinlock recursion in sched_exit()"

parents 105f04a6 5a17afdd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -7267,11 +7267,11 @@ void sched_exit(struct task_struct *p)
	reset_task_stats(p);
	p->ravg.mark_start = wallclock;
	p->ravg.sum_history[0] = EXITING_TASK_MARKER;
	free_task_load_ptrs(p);

	enqueue_task(rq, p, 0);
	clear_ed_task(p, rq);
	task_rq_unlock(rq, p, &rf);
	free_task_load_ptrs(p);
}
#endif /* CONFIG_SCHED_WALT */

+4 −0
Original line number Diff line number Diff line
@@ -1956,6 +1956,10 @@ void init_new_task_load(struct task_struct *p, bool idle_task)
	p->misfit = false;
}

/*
 * kfree() may wakeup kswapd. So this function should NOT be called
 * with any CPU's rq->lock acquired.
 */
void free_task_load_ptrs(struct task_struct *p)
{
	kfree(p->ravg.curr_window_cpu);