--- sys/dev/wbwd/wbwd.c 2015-06-02 13:37:27.000000000 +0900 +++ sys/dev/wbwd/wbwd.c 2015-09-17 10:20:28.602408000 +0900 @@ -689,7 +689,7 @@ struct sysctl_ctx_list *sctx; struct sysctl_oid *soid; unsigned long timeout; - int error; + int error, wden; error = wb_probe_enable(dev, 0); if (error > 0) @@ -716,7 +716,8 @@ sc->reg_2 = read_efdr_1(sc, 0); /* Print current state if bootverbose or watchdog already enabled. */ - if (bootverbose || (sc->reg_timeout > 0x00)) + wden = (sc->reg_timeout > 0x00) ? 1 : 0; + if (bootverbose || wden) wb_print_state(sc, "Before watchdog attach"); /* @@ -760,7 +761,14 @@ sc->ev_tag = EVENTHANDLER_REGISTER(watchdog_list, wb_watchdog_fn, sc, 0); - if (bootverbose) + /* Disable until watchdogd(8) re-enables, if it's already enabled. */ + if (wden) { + error = wb_set_watchdog(sc, 0); + if (error) + return (error); + } + + if (bootverbose || wden) wb_print_state(sc, "After watchdog attach"); return (0);