diff options
| author | Justin Hibbits <jhibbits@FreeBSD.org> | 2026-06-10 13:50:14 +0000 |
|---|---|---|
| committer | Justin Hibbits <jhibbits@FreeBSD.org> | 2026-06-10 14:04:40 +0000 |
| commit | d08cb1dc17486920c1506f175d77259e0ac3f3a3 (patch) | |
| tree | d92ae25216da970347ff5da2cdb553c9a55a7c95 | |
| parent | 4d8fde8cff0796f32e659036543aa17d16a15b1b (diff) | |
watchdog: Fix a couple type issues
* Force the type of the literal `1` passed to nstosbt() to ensure it's a
64-bit type (or larger). Otherwise it gets inconveniently typed to
int, resulting in truncation.
* Use `flsll()` when converting sbt to power-of-2-nanoseconds to fix
32-bit compatibility.
PR: 292616
Obtained from: Hewlett Packard Enterprise
Fixes: 26d6617f3 ("watchdog: Convert to using sbintime_t format")
MFC after: 3 days
| -rw-r--r-- | sys/dev/watchdog/watchdog.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/watchdog/watchdog.c b/sys/dev/watchdog/watchdog.c index c599db56bf95..4c166a2bd7e9 100644 --- a/sys/dev/watchdog/watchdog.c +++ b/sys/dev/watchdog/watchdog.c @@ -110,7 +110,7 @@ wdog_kern_pat(u_int utim) if (utim == WD_TO_NEVER) sbt = 0; else - sbt = nstosbt(1 << utim); + sbt = nstosbt(1ULL << utim); return (wdog_kern_pat_sbt(sbt)); } @@ -142,7 +142,7 @@ wdog_kern_pat_sbt(sbintime_t sbt) /* legacy uses power-of-2-nanoseconds time. */ if (sbt != 0) { - pow2ns = flsl(sbttons(sbt)); + pow2ns = flsll(sbttons(sbt)); } if (wd_last_sbt != sbt) { wd_last_u = pow2ns; |
