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:24:29 UTC 2007
At 05:42 PM 3/9/2007, Mike Tancsa wrote:
>Hi,
> The commit below to ichwd.c, breaks the watchdog on a
> number of Intel boards I tried it against. (ICH5 and ICH7) The
> module loads, but the box never reboots after sending a sig 11 to watchdogd
>
>ichwd module loaded
>ichwd0: <Intel 82801EB/ER watchdog timer> on isa0
>
>
>Reverting to the version of ichwd.c prior to your commit unbreaks it
>and the watchdog works once again in that the box reboots after
>killing watchdogd.
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
--- 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