first remove irq then stop thread
This commit is contained in:
13
iostate.c
13
iostate.c
@@ -262,12 +262,6 @@ static void __exit h1502iostate_exit(void){
|
||||
printk(KERN_ALERT "h1502iostate: failed to get framebuffer\n");
|
||||
}
|
||||
|
||||
if(display_update_task){
|
||||
flag = 1;
|
||||
kthread_stop(display_update_task);
|
||||
wake_up_interruptible(&wq);
|
||||
}
|
||||
|
||||
#ifdef TEST
|
||||
irqNumber = gpio_to_irq(2);
|
||||
free_irq(irqNumber, &fake_input[2]);
|
||||
@@ -288,6 +282,12 @@ static void __exit h1502iostate_exit(void){
|
||||
}
|
||||
#endif
|
||||
|
||||
if(display_update_task){
|
||||
flag = 1;
|
||||
kthread_stop(display_update_task);
|
||||
wake_up_interruptible(&wq);
|
||||
}
|
||||
|
||||
fb_clear_screen(info);
|
||||
|
||||
printk(KERN_INFO "h1502iostate: Goodbye\n");
|
||||
@@ -300,6 +300,5 @@ static irq_handler_t io_irq_handler(unsigned int irq, void *dev_id, struct pt_re
|
||||
return (irq_handler_t) IRQ_HANDLED; // Announce that the IRQ has been handled correctly
|
||||
}
|
||||
|
||||
|
||||
module_init(h1502iostate_init);
|
||||
module_exit(h1502iostate_exit);
|
||||
|
||||
Reference in New Issue
Block a user