详细分析过程在:https://blog.csdn.net/qq_36428903/article/details/124507803
简介
从vfree函数开始调到最后的函数,smp_call_function_many里,发现当前的irqs_disabled()的状态。
read_lock_irqsave & mutex_lock() & spin_lock_irqsave
这三个锁会对 irqs_disabled()函数返回值做操作,需要看函数 abc 前后是否有锁的操作,及是否有dead lock。 函数是由内核模块abc提供。
尤其是mutex_lock,这个锁可能会sleep,导致锁read_lock_irqsave,不能及时释放。等下一个进程进来获取write lock时,形成死锁。
read_lock_irqsave
mutex_lock()
spin_lock_irqsave
spin_unlock_irqrestore
vfree(