【Linux驅動開發】free_irq時發生錯誤:Trying to free already-free IRQ

在卸載驅動時,出現以下錯誤提示:

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)

以上兩個函數,在使用的時候,最後一個參數必須保持一致,問題解決。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章