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

Commit 4fa5cd52 authored by Con Kolivas's avatar Con Kolivas Committed by Ingo Molnar
Browse files

sched/core: Do not use smp_processor_id() with preempt enabled in smpboot_thread_fn()



We should not be using smp_processor_id() with preempt enabled.

Bug identified and fix provided by Alfred Chen.

Reported-by: default avatarAlfred Chen <cchalpha@gmail.com>
Signed-off-by: default avatarCon Kolivas <kernel@kolivas.org>
Cc: Alfred Chen <cchalpha@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/2042051.3vvUWIM0vs@hex


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent d59dc7bc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -122,12 +122,12 @@ static int smpboot_thread_fn(void *data)

		if (kthread_should_park()) {
			__set_current_state(TASK_RUNNING);
			preempt_enable();
			if (ht->park && td->status == HP_THREAD_ACTIVE) {
				BUG_ON(td->cpu != smp_processor_id());
				ht->park(td->cpu);
				td->status = HP_THREAD_PARKED;
			}
			preempt_enable();
			kthread_parkme();
			/* We might have been woken for stop */
			continue;