summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_clocksource.c
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2012-10-10 19:46:46 +0000
committermav <mav@FreeBSD.org>2012-10-10 19:46:46 +0000
commit4a7b4c2440e0b30ec4b0f58c0a23fbe173f24e6b (patch)
treee8bfcfc3ebd43d9739a4ec11a793802fbb26d9aa /sys/kern/kern_clocksource.c
parent81626f7faba37324662ae19bdabb40ba0f63e479 (diff)
downloadFreeBSD-src-4a7b4c2440e0b30ec4b0f58c0a23fbe173f24e6b.zip
FreeBSD-src-4a7b4c2440e0b30ec4b0f58c0a23fbe173f24e6b.tar.gz
panic() with reasonable message instead of returning zero frequency causing
division by zero later if event timer's minimal period is above one second. For now it is just a theoretical possibility. Found by: Clang Static Analyzer
Diffstat (limited to 'sys/kern/kern_clocksource.c')
-rw-r--r--sys/kern/kern_clocksource.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/kern_clocksource.c b/sys/kern/kern_clocksource.c
index a73536f..05e47e0 100644
--- a/sys/kern/kern_clocksource.c
+++ b/sys/kern/kern_clocksource.c
@@ -602,7 +602,8 @@ round_freq(struct eventtimer *et, int freq)
freq = (et->et_frequency + div / 2) / div;
}
if (et->et_min_period.sec > 0)
- freq = 0;
+ panic("Event timer \"%s\" doesn't support sub-second periods!",
+ et->et_name);
else if (et->et_min_period.frac != 0)
freq = min(freq, BT2FREQ(&et->et_min_period));
if (et->et_max_period.sec == 0 && et->et_max_period.frac != 0)
OpenPOWER on IntegriCloud