From ae0d1b2b790044d2598e08d60bc587aed38f2108 Mon Sep 17 00:00:00 2001 From: Andrew Boie Date: Fri, 29 Mar 2019 16:25:27 -0700 Subject: [PATCH] kernel: sched: move stack sentinel check earlier Checking the stack sentinel may abort the current thread, make this check before we determine what the next thread to run is. Fixes: #15037 Signed-off-by: Andrew Boie --- kernel/sched.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/kernel/sched.c b/kernel/sched.c index 84fea6d2eea..62f0b36f412 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -587,6 +587,8 @@ void *z_get_next_switch_handle(void *interrupted) { _current->switch_handle = interrupted; + z_check_stack_sentinel(); + #ifdef CONFIG_SMP LOCKED(&sched_spinlock) { struct k_thread *th = next_up(); @@ -617,9 +619,6 @@ void *z_get_next_switch_handle(void *interrupted) !IS_ENABLED(CONFIG_SCHED_IPI_SUPPORTED)) { z_sched_ipi(); } - - z_check_stack_sentinel(); - return _current->switch_handle; } #endif