Nếu mã như sauNested spin_lock_irqsave
void test(void)
{
spin_lock_irqsave(&lock1, flag);
...
func1();
...
spin_unlock_irqrestore(&lock1, flag);
}
void func1(void)
{
spin_lock_irqsave(&lock2, flag);
...
spin_unlock_irqrestore(&lock2, flag);
}
Sẽ có bất kỳ vấn đề với mã? khi spin_unlock_irqrestore
được gọi trong func1, thì ngắt sẽ được bật chưa? Những gì tôi muốn đạt được là test()
thường trình có thể được thực hiện mà không bị gián đoạn bởi bộ lập lịch hoặc ngắt. Cảm ơn rất nhiều
Thực ra, đó là toàn bộ điểm có 'spin_lock_irqsave()/spin_unlock_irq_restore()' ngoài 'spin_lock_irq()/spin_unlock_irq()'. – ninjalj