If tasklet_disable() is called before related tasklet handled, tasklet_kill will never be finished. tasklet_kill is enough. Signed-off-by: Xiaotian Feng <dannyfeng@xxxxxxxxxxx> Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> Cc: Tony Lindgren <tony@xxxxxxxxxxx> Cc: Sourav Poddar <sourav.poddar@xxxxxx> Cc: Josh <joshua.taylor0@xxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Cc: linux-input@xxxxxxxxxxxxxxx --- 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-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html