我正在浏览以下驱动程序的探测功能
/drivers/net/ethernet/smsc/smsc911x.c
在探测功能中,它被评论为
/* Ensure interrupts are globally disabled before connecting ISR */
smsc911x_disable_irq_chip(dev);
retval = request_irq(dev->irq, smsc911x_irqhandler,
irq_flags | IRQF_SHARED, dev->name, dev);
但是我不认为在其他所有设备驱动程序中都是TRUE,那么为什么会出现这种特殊的网络驱动程序呢?
为什么在连接ISR之前全局禁用中断?
答案 0 :(得分:0)
评论说全局禁用中断;但是在下面的函数调用中,仅对设备smsc驱动程序附加的中断禁用。这通常是为了避免在驱动程序准备处理中断之前很好地获得中断。由于这是用于以太网驱动程序,因此在接口启动期间最有可能启用中断。 有问题的代码片段在模块加载期间执行,这在接口之前就已经完成了。