直接上内核panic的日志,如下:
中断函数里直接调用gpio_direction_output控制一些状态,而gpio_direction_output函数内部是有mutex锁的,mutex锁是可以被打断可休眠的,中断里使用mutex锁容易被其他模块打断而引发死锁。
解决:
中断处理函数不可以有mutex锁,可以将相关事项放工作队列或更改mutex锁为原子锁。
直接上内核panic的日志,如下:
中断函数里直接调用gpio_direction_output控制一些状态,而gpio_direction_output函数内部是有mutex锁的,mutex锁是可以被打断可休眠的,中断里使用mutex锁容易被其他模块打断而引发死锁。
解决:
中断处理函数不可以有mutex锁,可以将相关事项放工作队列或更改mutex锁为原子锁。