【发布时间】:2013-10-21 18:20:31
【问题描述】:
【问题讨论】:
标签: c linux-kernel irq
【问题讨论】:
标签: c linux-kernel irq
是的,该规则包括软中断上下文。您认为需要从 softirq 上下文调用 free_irq() 的事实表明您的设计有点不同寻常——在正常情况下,free_irq() 在设备关闭时使用,这几乎总是来自进程上下文。
但是,如果您真的需要这样做,则可以通过schedule_work() 或一些类似的工作队列函数将其推迟到处理上下文。当然,您不能在 softirq 中等待延迟的工作完成,因此您还必须推迟释放 IRQ 之后的任何其他工作。
如果您提供更多关于您为什么尝试从中断上下文调用free_irq() 的信息,可能会给出更好的答案。
【讨论】: