0

内核文档说明free_irq了以下内容:

不得从中断上下文中调用此函数。

它包括软件中断吗?如何在软件 IRQ 函数中释放 IRQ?

谢谢你的帮助,

4

1 回答 1

0

是的,该规则包括软中断上下文。您认为需要free_irq()从 softirq 上下文调用的事实表明您的设计有点不同寻常——在正常情况下,free_irq()在设备关闭时使用,这几乎总是来自进程上下文。

但是,如果您确实需要这样做,则要做的是将其推迟到通过schedule_work()或某些类似的工作队列功能处理上下文。当然,您不能在 softirq 中等待延迟的工作完成,因此您还必须推迟释放 IRQ 之后的任何其他工作。

free_irq()如果您提供更多有关您尝试从中断上下文调用的原因的信息,则可能会给出更好的答案。

于 2012-09-27T06:59:39.363 回答