标签: linux linux-kernel linux-device-driver interrupt
我正在编写一个需要等待中断的Linux设备驱动程序(由GPIO线路中的更改触发),并且一旦发生中断,就会禁用中断,直到满足某些条件。
我试过从处理程序调用{{1}}。稍后,当我想再次处理此中断时,我会调用disable_irq_nosync来重新启用它。但是我发现如果GPIO在中断被禁用时发生变化,这似乎是内核在内部检测到的,并且一旦我调用enable_irq就会立即触发中断。
disable_irq_nosync
enable_irq
为什么会发生这种情况,我该如何避免呢?