diff --git a/os/kernel/src/chmtx.c b/os/kernel/src/chmtx.c index 962356db8..d319b9316 100644 --- a/os/kernel/src/chmtx.c +++ b/os/kernel/src/chmtx.c @@ -88,26 +88,26 @@ void chMtxLockS(Mutex *mp) { switch (tp->p_state) { case THD_STATE_WTMTX: /* Re-enqueues tp with its new priority on the mutex wait queue.*/ - prio_insert(dequeue(tp), (ThreadsQueue *)&tp->p_u.wtobjp); + prio_insert(dequeue(tp), (ThreadsQueue *)tp->p_u.wtobjp); /* Boost the owner of this mutex if needed.*/ tp = ((Mutex *)tp->p_u.wtobjp)->m_owner; continue; #if CH_USE_CONDVARS case THD_STATE_WTCOND: /* Re-enqueues tp with its new priority on the condvar queue.*/ - prio_insert(dequeue(tp), (ThreadsQueue *)&tp->p_u.wtobjp); + prio_insert(dequeue(tp), (ThreadsQueue *)tp->p_u.wtobjp); break; #endif #if CH_USE_SEMAPHORES_PRIORITY case THD_STATE_WTSEM: /* Re-enqueues tp with its new priority on the semaphore queue.*/ - prio_insert(dequeue(tp), (ThreadsQueue *)&tp->p_u.wtobjp); + prio_insert(dequeue(tp), (ThreadsQueue *)tp->p_u.wtobjp); break; #endif #if CH_USE_MESSAGES_PRIORITY case THD_STATE_SNDMSG: /* Re-enqueues tp with its new priority on the server thread queue.*/ - prio_insert(dequeue(tp), ((Thread *)tp->p_u.wtobjp)->p_msgqueue); + prio_insert(dequeue(tp), &((Thread *)tp->p_u.wtobjp)->p_msgqueue); break; #endif case THD_STATE_READY: diff --git a/os/ports/GCC/ARMCM3/chcore.c b/os/ports/GCC/ARMCM3/chcore.c index 6a8f21853..e7f6b82c3 100644 --- a/os/ports/GCC/ARMCM3/chcore.c +++ b/os/ports/GCC/ARMCM3/chcore.c @@ -158,7 +158,7 @@ void PendSVVector(void) { PUSH_CONTEXT(sp_thd); (otp = currp)->p_ctx.r13 = sp_thd; - (currp = fifo_remove(&rlist.r_queue))->p_state = PRCURR; + (currp = fifo_remove(&rlist.r_queue))->p_state = THD_STATE_CURRENT; chSchReadyI(otp); #if CH_TIME_QUANTUM > 0 /* set the round-robin time quantum */