aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/serio/hil_mlc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/input/serio/hil_mlc.c')
-rw-r--r--drivers/input/serio/hil_mlc.c13
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)
1010static void __exit hil_mlc_exit(void) 1009static 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