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/

Reply via email to