Poo*_*rna 0 synchronization device-driver linux-kernel
这是关于void spin_lock_irqsave(spinlock_t *lock, unsigned long flags);函数调用。之前提到的中断状态存储在标志中,我们可以通过将其传递给spin_unlock_irqrestore函数来恢复它们。
但是我不知道值传递的标志如何在spin_lock_irqsave调用时捕获先前的中断状态。
spin_lock_irqsave是宏,不是函数。因此,flags即使它显然是按值传递的,它也可以分配给。
看:
http://lxr.linux.no/#linux+v2.6.35.4/include/linux/spinlock.h#L312
http://lxr.linux.no/#linux+v2.6.35.4/include/linux /spinlock.h#L187