From 2aacba2c868176e50ccd522e882ca0b194a9ed14 Mon Sep 17 00:00:00 2001 From: Shell Date: Thu, 18 Apr 2024 20:03:12 +0800 Subject: [PATCH] [src] Fixup UP irq_spinlock Use scheduler lock in up irq_spinlock to avoid scheduling during spinlock. Signed-off-by: Shell --- include/rtthread.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/rtthread.h b/include/rtthread.h index 55f57a2118..2329824112 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -632,11 +632,13 @@ rt_inline rt_base_t rt_spin_lock_irqsave(struct rt_spinlock *lock) rt_base_t level; RT_UNUSED(lock); level = rt_hw_interrupt_disable(); + rt_enter_critical(); return level; } rt_inline void rt_spin_unlock_irqrestore(struct rt_spinlock *lock, rt_base_t level) { RT_UNUSED(lock); + rt_exit_critical(); rt_hw_interrupt_enable(level); }