(三)内核锁

1、mutex_lock,mutex_unlock只用在进程间
2、spin_lock,spin_unlock一般是只用在中断或者只用在进程中。如果进程和中断都用spin_lock获取锁,访问临界区,可能会导致死锁
3、spin_lock_irq,spin_unlock_irq可以用在进程和中断中申请锁
4、spin_lock_irqsave,spin_unlock_irqrestore保留spin_lock_irq功能,退出锁后会保持内核中断开启或关闭状态。
5、spin_lock_bh,spin_unlock_bh这个是中断底半部与进程间用

原文地址:https://www.cnblogs.com/zhangshenghui/p/6978377.html