diff --git a/sched/semaphore/spinlock.c b/sched/semaphore/spinlock.c index 669c57a74f410..63ffe4c8f126f 100644 --- a/sched/semaphore/spinlock.c +++ b/sched/semaphore/spinlock.c @@ -481,13 +481,13 @@ void fair_spin_lock(FAR fair_spinlock_list_t *lock_list, list_for_every_entry_safe(&lock_list->list, entry, temp, struct fair_spinlock_s, node) { - if (entry->holder->sched_priority <= rtcb->sched_priority) + if (entry->holder->sched_priority > rtcb->sched_priority) { break; } } - list_add_after(&entry->node, &fair_lock->node); + list_add_before(&entry->node, &fair_lock->node); } spin_unlock(&lock_list->lock);