在了解上半部分和下半部分的概念时,我遇到了一个问题。
这是我的理解:上半部分和下半部分在中断上下文中执行。唯一的区别是下半部分在启用中断的情况下执行,而上半部分在相应的 irq 禁用的情况下执行(仍然可以通过使用SA_INTERRUPT
标志来克服)。
问题:就在从上半部分处理程序返回之前,return_from_intr
被调用。现在调度程序被调用并执行下半部分,如果有任何未决的。既然return_from_intr
被调用了,下半部分如何在中断上下文中执行?它将处于内核模式而不是中断模式?
如果我错了,请纠正我。