Browse Source

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>
Corey Minyard 10 years ago
parent
commit
314ef52fe6
1 changed files with 7 additions and 0 deletions
  1. 7 0
      drivers/char/ipmi/ipmi_si_intf.c

+ 7 - 0
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;
 }