diff options
Diffstat (limited to 'drivers/input/serio/hil_mlc.c')
-rw-r--r-- | drivers/input/serio/hil_mlc.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/input/serio/hil_mlc.c b/drivers/input/serio/hil_mlc.c index bfd3865d886b..65605e4ef3cf 100644 --- a/drivers/input/serio/hil_mlc.c +++ b/drivers/input/serio/hil_mlc.c | |||
@@ -686,13 +686,12 @@ static int hilse_donode(hil_mlc *mlc) | |||
686 | write_lock_irqsave(&mlc->lock, flags); | 686 | write_lock_irqsave(&mlc->lock, flags); |
687 | pack = node->object.packet; | 687 | pack = node->object.packet; |
688 | out: | 688 | out: |
689 | if (mlc->istarted) | 689 | if (!mlc->istarted) { |
690 | goto out2; | 690 | /* Prepare to receive input */ |
691 | /* Prepare to receive input */ | 691 | if ((node + 1)->act & HILSE_IN) |
692 | if ((node + 1)->act & HILSE_IN) | 692 | hilse_setup_input(mlc, node + 1); |
693 | hilse_setup_input(mlc, node + 1); | 693 | } |
694 | 694 | ||
695 | out2: | ||
696 | write_unlock_irqrestore(&mlc->lock, flags); | 695 | write_unlock_irqrestore(&mlc->lock, flags); |
697 | 696 | ||
698 | if (down_trylock(&mlc->osem)) { | 697 | if (down_trylock(&mlc->osem)) { |
@@ -1010,8 +1009,6 @@ static int __init hil_mlc_init(void) | |||
1010 | static void __exit hil_mlc_exit(void) | 1009 | static void __exit hil_mlc_exit(void) |
1011 | { | 1010 | { |
1012 | del_timer_sync(&hil_mlcs_kicker); | 1011 | del_timer_sync(&hil_mlcs_kicker); |
1013 | |||
1014 | tasklet_disable(&hil_mlcs_tasklet); | ||
1015 | tasklet_kill(&hil_mlcs_tasklet); | 1012 | tasklet_kill(&hil_mlcs_tasklet); |
1016 | } | 1013 | } |
1017 | 1014 | ||