我正在学习Linux内核中的中断处理,并在下面的代码片段中尝试在IRQ2上注册一个虚拟irq处理程序。但是它似乎没有被注册,因为我看到了一个负的返回值和内核中的一条消息,如下面所示,这来自于试图执行free_irq()的清理函数
[ 2203.989585] Trying to free already-free IRQ 2
下面是来自内核日志的printk,这表明它还没有注册:
Here with registering IRQ handler on IRQ2 for flowTest...retval_irqreg= -22
下面是我的代码的相关部分,它有四个功能
1 the bottom