1

硬件引发中断,CPU调用IRQ线上的注册中断处理程序。进入中断处理程序后,是否必须禁用硬件中断?

在我的设备驱动程序中,我必须在进入处理程序后禁用中断,并在完成所需处理后重新启用它们?

或者,如果我们只是在调用中断处理程序之后清除所需的中断状态寄存器而不禁用并重新启用它们,那么它可以吗?

什么是正确的过程,是这种处理体系结构特定的(x86,ARM)?

回答

0

由于您的IRQ处理程序是从进一步中断已被禁用的上下文中调用的,因此您并不需要担心禁用并重新启用它们。你可以清除标志,做一些快速的工作,安排一个工作队列做进一步的工作,并从处理程序返回。并将启用/禁用部分留给内核