- static int __init pinpad_init(void)
- {
- /* Eventually set up IT */
- request_irq(KEYBOARD_IRQ, pinpad_interrupt, SA_INTERRUPT, pinpad_name, NULL);
- }
- static void __exit pinpad_exit(void)
- {
- /*note: if you not use pinpad_interrupt(not NULL), the kernel will holler:Trying to free already-free IRQ 4*/
- free_irq(KEYBOARD_IRQ, NULL);
- }
很多官方的 代码都是用的
- free_irq(KEYBOARD_IRQ, pinpad_interrupt);
可惜这样做会导致内核抱怨:
- Trying to free already-free IRQ 4
后来研究了后才知道, free_irq这里传递的最后一个参数必须和request_irq传递的最后一个参数 一致!!!
原文地址:http://blog.youkuaiyun.com/zanget/article/details/4086920