diff options
author | mav <mav@FreeBSD.org> | 2012-10-10 19:46:46 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2012-10-10 19:46:46 +0000 |
commit | 4a7b4c2440e0b30ec4b0f58c0a23fbe173f24e6b (patch) | |
tree | e8bfcfc3ebd43d9739a4ec11a793802fbb26d9aa /sys/kern | |
parent | 81626f7faba37324662ae19bdabb40ba0f63e479 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/kern/kern_clocksource.c | 3 |
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) |