gpt4 book ai didi

linux-kernel - 为什么有些代码使用 NULL 作为 irq_handler 的参数调用 request_threaded_irq?

转载 作者:行者123 更新时间:2023-12-04 02:08:05 29 4
gpt4 key购买 nike

根据内核文档,request_threaded_irq 用于将其分为两部分,irq_handler 检查中断是否来自设备。如果是,它需要禁用设备上的中断并返回 IRQ_WAKE_THREAD,这将唤醒处理程序线程并运行 @thread_fn

但我发现一些代码注册中断,使用 request_threaded_irq 同时将 NULL 作为 irq_handler 传递,它们在 thread_fn.

所以我怀疑为什么我们在那种情况下使用 request_threaded_irq(),而我们可以轻松地使用 request_irq,它在上述场景中的行为相同。

最佳答案

documentation说:

If NULL and thread_fn != NULL the default primary handler is installed

默认的主处理程序没有记录,但它的来源应该是不言自明的:

 static irqreturn_t irq_default_primary_handler(int irq, void *dev_id)
{
return IRQ_WAKE_THREAD;
}

关于linux-kernel - 为什么有些代码使用 NULL 作为 irq_handler 的参数调用 request_threaded_irq?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22325174/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com