ipmi: Stop the timer immediately if idle
authorCorey Minyard <cminyard@mvista.com>
Sat, 5 Sep 2015 22:58:13 +0000 (17:58 -0500)
committerCorey Minyard <cminyard@mvista.com>
Mon, 16 Nov 2015 03:08:26 +0000 (21:08 -0600)
The IPMI driver would let the final timeout just happen, but it could
easily just stop the timer.  If the timer stop fails that's ok, that
should be rare.

Signed-off-by: Corey Minyard <cminyard@mvista.com>
drivers/char/ipmi/ipmi_si_intf.c

index 20c3d7b..71b59cb 100644 (file)
@@ -935,6 +935,13 @@ static enum si_sm_result smi_event_handler(struct smi_info *smi_info,
                }
                goto restart;
        }
+
+       if (si_sm_result == SI_SM_IDLE && smi_info->timer_running) {
+               /* Ok it if fails, the timer will just go off. */
+               if (del_timer(&smi_info->si_timer))
+                       smi_info->timer_running = false;
+       }
+
  out:
        return si_sm_result;
 }