If tasklet_disable() is called before related tasklet handled, tasklet_kill will never be finished. tasklet_kill is enough.
Signed-off-by: Xiaotian Feng <dannyf...@tencent.com> Cc: Dmitry Torokhov <dmitry.torok...@gmail.com> Cc: Tony Lindgren <t...@atomide.com> Cc: Sourav Poddar <sourav.pod...@ti.com> Cc: Josh <joshua.tayl...@gmail.com> Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org> Cc: linux-in...@vger.kernel.org --- drivers/input/keyboard/omap-keypad.c | 3 +-- drivers/input/serio/hil_mlc.c | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/input/keyboard/omap-keypad.c b/drivers/input/keyboard/omap-keypad.c index 4a5fcc8..6c52447 100644 --- a/drivers/input/keyboard/omap-keypad.c +++ b/drivers/input/keyboard/omap-keypad.c @@ -362,12 +362,11 @@ static int __devexit omap_kp_remove(struct platform_device *pdev) struct omap_kp *omap_kp = platform_get_drvdata(pdev); /* disable keypad interrupt handling */ - tasklet_disable(&kp_tasklet); + tasklet_kill(&kp_tasklet); omap_writew(1, OMAP1_MPUIO_BASE + OMAP_MPUIO_KBD_MASKIT); free_irq(omap_kp->irq, omap_kp); del_timer_sync(&omap_kp->timer); - tasklet_kill(&kp_tasklet); /* unregister everything */ input_unregister_device(omap_kp->input); diff --git a/drivers/input/serio/hil_mlc.c b/drivers/input/serio/hil_mlc.c index bfd3865..7fc1700 100644 --- a/drivers/input/serio/hil_mlc.c +++ b/drivers/input/serio/hil_mlc.c @@ -1011,7 +1011,6 @@ static void __exit hil_mlc_exit(void) { del_timer_sync(&hil_mlcs_kicker); - tasklet_disable(&hil_mlcs_tasklet); tasklet_kill(&hil_mlcs_tasklet); } -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/