cvs commit: src/share/man/man4 Makefile watchdog.4
src/share/man/man9 watchdog.9 src/sys/arm/xscale/i80321 i80321_wdog.c
src/sys/dev/ichwd ichwd.c src/sys/dev/ipmi ipmi.c src/sys/dev/mk48txx
mk48txx.c src/sys/dev/watchdog watchdog.c ...
Mike Tancsa
mike at sentex.net
Tue Mar 13 15:45:58 UTC 2007
At 11:32 AM 3/13/2007, Nick Hibma wrote:
>>Hi,
>>I think the issue is that in the commit you wiped out the part
>>where the dog gets enabled ?
>>
>>This diff against what you committed gets it working once again
>
>Yes, the enable is missing. The (untested) fix should be:
Yup, the patch below works for me!
---Mike
>--- ichwd.c~ Tue Feb 20 23:56:27 2007
>+++ ichwd.c Tue Mar 13 16:31:11 2007
>@@ -183,8 +183,11 @@
> timeout = ((uint64_t)1 << cmd) / ICHWD_TICK;
> if (cmd > 0 && cmd <= 63
> && timeout >= ICHWD_MIN_TIMEOUT && timeout <=
> ICHWD_MAX_TIMEOUT) {
>- if (timeout != sc->timeout)
>+ if (timeout != sc->timeout) {
>+ if (!sc->active)
>+ ichwd_tmr_enable(sc);
> ichwd_tmr_set(sc, timeout);
>+ }
>
> ichwd_tmr_reload(sc);
> *error = 0;
>
>
>Nick
>
>>
>>
>>--- ichwd.c.old Tue Feb 20 17:56:27 2007
>>+++ ichwd.c Tue Mar 13 10:19:12 2007
>>@@ -178,6 +178,16 @@
>> struct ichwd_softc *sc = arg;
>> unsigned int timeout;
>>
>>+/* disable / enable */
>>+ if (!(cmd & WD_ACTIVE)) {
>>+ if (sc->active)
>>+ ichwd_tmr_disable(sc);
>>+ *error = 0;
>>+ return;
>>+ }
>>+ if (!sc->active)
>>+ ichwd_tmr_enable(sc);
>>+
>> /* convert from power-of-two-ns to WDT ticks */
>> cmd &= WD_INTERVAL;
>> timeout = ((uint64_t)1 << cmd) / ICHWD_TICK;
>>@@ -189,8 +199,6 @@
>> ichwd_tmr_reload(sc);
>> *error = 0;
>> } else {
>>- if (sc->active)
>>- ichwd_tmr_disable(sc);
>> if (cmd > 0)
>> *error = EINVAL;
>> }
>>
>>
>>
>>
>>> ---Mike
>>>At 05:56 PM 2/20/2007, Nick Hibma wrote:
>>>>n_hibma 2007-02-20 22:56:29 UTC
>>>>
>>>> FreeBSD src repository
>>>>
>>>> Modified files: (Branch: RELENG_6)
>>>> share/man/man4 Makefile watchdog.4
>>>> share/man/man9 watchdog.9
>>>> sys/arm/xscale/i80321 i80321_wdog.c
>>>> sys/dev/ichwd ichwd.c
>>>> sys/dev/ipmi ipmi.c
>>>> sys/dev/mk48txx mk48txx.c
>>>> sys/dev/watchdog watchdog.c
>>>> sys/i386/i386 elan-mmcr.c
>>>> sys/kern kern_clock.c
>>>> sys/sys watchdog.h
>>>> usr.sbin/watchdogd watchdog.8 watchdogd.c
>>>> Log:
>>>> MFC the following commits:
>>>>
>>>> Align the interfaces for the various watchdogs and make the interface
>>>> behave as expected.
>>>>
>>>> Also:
>>>> - Return an error if WD_PASSIVE is passed in to the ioctl as only
>>>> WD_ACTIVE is implemented at the moment. See sys/watchdog.h for an
>>>> explanation of the difference between WD_ACTIVE and WD_PASSIVE.
>>>> - Remove the I_HAVE_TOTALLY_LOST_MY_SENSE_OF_HUMOR define. If you've
>>>> lost your sense of humor, than don't add a define.
>>>>
>>>> Specific changes:
>>>>
>>>> i80321_wdog.c
>>>> Don't roll your own passive watchdog tickle as this would defeat the
>>>> purpose of an active (userland) watchdog tickle.
>>>>
>>>> ichwd.c / ipmi.c:
>>>> WD_ACTIVE means active patting of the watchdog by a
>>>> userland process,
>>>> not whether the watchdog is active. See sys/watchdog.h.
>>>>
>>>> kern_clock.c:
>>>> (software watchdog) Remove a check for WD_ACTIVE as this
>>>> does not make
>>>> sense here. This reverts r1.181.
>>>>
>>>> Revision Changes Path
>>>> 1.371 +1 -0 src/share/man/man4/Makefile
>>>> 1.8 +69 -25 src/share/man/man4/watchdog.4
>>>> 1.4 +7 -1 src/share/man/man9/watchdog.9
>>>> 1.3 +15 -11 src/sys/arm/xscale/i80321/i80321_wdog.c
>>>> 1.7 +12 -30 src/sys/dev/ichwd/ichwd.c
>>>> 1.8 +8 -17 src/sys/dev/ipmi/ipmi.c
>>>> 1.8 +3 -1 src/sys/dev/mk48txx/mk48txx.c
>>>> 1.4 +4 -1 src/sys/dev/watchdog/watchdog.c
>>>> 1.33 +9 -9 src/sys/i386/i386/elan-mmcr.c
>>>> 1.193 +3 -3 src/sys/kern/kern_clock.c
>>>> 1.4 +0 -4 src/sys/sys/watchdog.h
>>>>
>>>> and
>>>>
>>>> Don't exit from watchdogd on receiving a signal if we cannot
>>>> stop the watchdog.
>>>> That'll require -KILL. This avoids resetting your system on one of the
>>>> watchdogs that you cannot disable.
>>>>
>>>> Revision Changes Path
>>>> 1.15 +18 -11 src/usr.sbin/watchdogd/watchdogd.c
>>>>
>>>> Reviewed by: phk
>>>>
>>>> Revision Changes Path
>>>> 1.320.2.25 +1 -0 src/share/man/man4/Makefile
>>>> 1.6.8.2 +69 -25 src/share/man/man4/watchdog.4
>>>> 1.3.8.1 +7 -1 src/share/man/man9/watchdog.9
>>>> 1.2.2.1 +15 -11 src/sys/arm/xscale/i80321/i80321_wdog.c
>>>> 1.5.2.2 +12 -30 src/sys/dev/ichwd/ichwd.c
>>>> 1.3.2.5 +6 -17 src/sys/dev/ipmi/ipmi.c
>>>> 1.6.2.2 +3 -1 src/sys/dev/mk48txx/mk48txx.c
>>>> 1.2.8.1 +9 -2 src/sys/dev/watchdog/watchdog.c
>>>> 1.31.2.2 +9 -9 src/sys/i386/i386/elan-mmcr.c
>>>> 1.178.2.4 +3 -3 src/sys/kern/kern_clock.c
>>>> 1.3.8.1 +0 -4 src/sys/sys/watchdog.h
>>>> 1.6.2.1 +5 -4 src/usr.sbin/watchdogd/watchdog.8
>>>> 1.10.2.2 +19 -13 src/usr.sbin/watchdogd/watchdogd.c
>>>>_______________________________________________
>>>>cvs-all at freebsd.org mailing list
>>>>http://lists.freebsd.org/mailman/listinfo/cvs-all
>>>>To unsubscribe, send any mail to "cvs-all-unsubscribe at freebsd.org"
>>>_______________________________________________
>>>freebsd-stable at freebsd.org mailing list
>>>http://lists.freebsd.org/mailman/listinfo/freebsd-stable
>>>To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>>
More information about the freebsd-stable
mailing list