是的,该规则包括软中断上下文。您认为需要free_irq()
从 softirq 上下文调用的事实表明您的设计有点不同寻常——在正常情况下,free_irq()
在设备关闭时使用,这几乎总是来自进程上下文。
但是,如果您确实需要这样做,则要做的是将其推迟到通过schedule_work()
或某些类似的工作队列功能处理上下文。当然,您不能在 softirq 中等待延迟的工作完成,因此您还必须推迟释放 IRQ 之后的任何其他工作。
free_irq()
如果您提供更多有关您尝试从中断上下文调用的原因的信息,则可能会给出更好的答案。