From 2b02744e0a88e31725ead3463d7181713649c0e9 Mon Sep 17 00:00:00 2001 From: daniel-k Date: Fri, 2 Sep 2016 20:06:41 +0200 Subject: [PATCH] kernel/tasks: fix minor bug in check_scheduling() If the prio_bitmap is 0, msb() will return 64 which will be greater than the current priority in any case. While this was a bug, it only triggered a useless rescheduling and didn't affect correctness. --- hermit/kernel/tasks.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hermit/kernel/tasks.c b/hermit/kernel/tasks.c index fec1166c1..66b103de1 100644 --- a/hermit/kernel/tasks.c +++ b/hermit/kernel/tasks.c @@ -199,7 +199,8 @@ void check_scheduling(void) { if (!is_irq_enabled()) return; - if (msb(readyqueues[CORE_ID].prio_bitmap) > per_core(current_task)->prio) + + if (get_highest_priority() > per_core(current_task)->prio) reschedule(); }