1、进程上下文 ioctl调用使用spin_lock保护共享资源
2、timerlist软中断在中断退出前触发也用spin_lock保护共享资源
在同一个cpu0中当ioctl进入spin_lock后,在退出spin_unlock前,中断产生timerlist软中断也进入spin_lock这时候就产生了死锁
解决方法:使用spin_lock_irqsave和spin_unlock_irqrestore保证在ioctl进程上下文中不会有timerlist软中断进入,这样就不会导致死锁
1、进程上下文 ioctl调用使用spin_lock保护共享资源
2、timerlist软中断在中断退出前触发也用spin_lock保护共享资源
在同一个cpu0中当ioctl进入spin_lock后,在退出spin_unlock前,中断产生timerlist软中断也进入spin_lock这时候就产生了死锁
解决方法:使用spin_lock_irqsave和spin_unlock_irqrestore保证在ioctl进程上下文中不会有timerlist软中断进入,这样就不会导致死锁