diff --git a/sys/kern/kern_wdog.c b/sys/kern/kern_wdog.c --- a/sys/kern/kern_wdog.c +++ b/sys/kern/kern_wdog.c @@ -118,8 +118,13 @@ spin_lock(&wdogmtx); LIST_FOREACH(wd, &wdoglist, link) { - /* XXX: check for period_max */ - wd->period = period; + /* Clamp to the maximum supported period. */ + if (wd->period_max != 0 && period > wd->period_max) + wd->period = wd->period_max; + else if (period < 0) + wd->period = 0; + else + wd->period = period; } spin_unlock(&wdogmtx); }