我写了一个类似这样的代码:
它在非中断上下文中:
spin_lock_irqsave(&lock, flags);
printk("some message blah...\n");
spin_unlock_irqrestore(&lock, flags);
我正在运行此代码并且“看起来”很安全,因为我没有看到任何崩溃。但是,我不确定这是否真的是一个安全的代码。因为这可能会以 1/100000 的概率触发系统崩溃。
此外,我想知道在 spin_lock_irqsave 中调用“sleep”函数是否安全(在非中断上下文中)。