ソースを参照

[src] Fixup UP irq_spinlock

Use scheduler lock in up irq_spinlock to avoid scheduling during spinlock.

Signed-off-by: Shell <smokewood@qq.com>
Shell 1 年間 前
コミット
2aacba2c86
1 ファイル変更2 行追加0 行削除
  1. 2 0
      include/rtthread.h

+ 2 - 0
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);
 }