diff options
author | Corey Minyard <cminyard@mvista.com> | 2015-09-05 17:58:13 -0500 |
---|---|---|
committer | Corey Minyard <cminyard@mvista.com> | 2015-11-15 21:08:26 -0600 |
commit | 314ef52fe67f8f03453b69169f954e2d04679bbd (patch) | |
tree | 21ad718a8c8156ea9fff34df169e27ca1f0ee8b6 /drivers/char/ipmi | |
parent | 0cfec916e86d881e209de4b4ae9959a6271e6660 (diff) | |
download | talos-op-linux-314ef52fe67f8f03453b69169f954e2d04679bbd.tar.gz talos-op-linux-314ef52fe67f8f03453b69169f954e2d04679bbd.zip |
ipmi: Stop the timer immediately if idle
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>
Diffstat (limited to 'drivers/char/ipmi')
-rw-r--r-- | drivers/char/ipmi/ipmi_si_intf.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index 20c3d7b97602..71b59cb6ae0c 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c @@ -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; } |