Date: Tue, 13 Mar 2007 11:45:33 -0400 From: Mike Tancsa <mike@sentex.net> To: Nick Hibma <nick@van-laarhoven.org> Cc: freebsd-stable@freebsd.org Subject: Re: 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 ... Message-ID: <200703131545.l2DFjvCK024125@lava.sentex.ca> In-Reply-To: <20070313162641.S17388@localhost> References: <200702202256.l1KMuTPN046797@repoman.freebsd.org> <200703092140.l29LeUZ8002593@lava.sentex.ca> <200703131524.l2DFOSHY024018@lava.sentex.ca> <20070313162641.S17388@localhost>
next in thread | previous in thread | raw e-mail | index | archive | help
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@freebsd.org mailing list >>>>http://lists.freebsd.org/mailman/listinfo/cvs-all >>>>To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org" >>>_______________________________________________ >>>freebsd-stable@freebsd.org mailing list >>>http://lists.freebsd.org/mailman/listinfo/freebsd-stable >>>To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org" >>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200703131545.l2DFjvCK024125>