在卸载驱动时,出现以下错误提示:
WARNING: CPU: 0 PID: 81 at kernel/irq/manage.c:1346 ...
Trying to free already-free IRQ
...
表示中断没有释放成功,磨了很久后发现,中断申请函数request_irq()与中断释放函数free_irq()的最后一个参数(void *dev 设备结构体)要保持一致,必须是同一个指针,参数传递过来的都不算。
int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev)
void free_irq(unsigned int irq, void *dev)
以上两个函数,在使用的时候,最后一个参数必须保持一致,问题解决。