Re: [PATCH][WATCHDOG] v2.6.25-rc7: it8712f_wdt.c contains an error - was Re: [WATCHDOG] v2.5.25-rc patches
From: Andrew Paprocki
Date: Tue Apr 01 2008 - 11:31:46 EST
Oliver,
Sorry, the previous e-mail slipped by me. I'll try this out later and update.
Thanks,
-Andrew
On Tue, Apr 1, 2008 at 11:06 AM, Oliver Schuster <oliver.s@xxxxxxxxx> wrote:
> Hi,
>
> i've mailed before to lkml and Andrew Paprocki (2008-03-12) directly.
> But the original patch wasn't changed. Here's a patch to correct the
> error.
>
> Description of the error:
> By introducing the support of 16 Bit timer values for later it8712 an
> error was made. The value is stored through superio_outw() which cause,
> that the upper Byte is in the Register called "Watch Dog Timer Time-Out
> Value (LSB) Register" and the lower in "Watch Dog Timer Time-Out Value
> (MSB) Register".
>
> A common value is 60: stored this way the watchdog timer runs out
> in 4h 16mins. In case of a deadlocked server this is a long time to
> wait, before the service comes back!
>
> Regards,
> Oliver
>
> Wim Van Sebroeck schrieb:
> > Hi Oliver,
> >
> >> this patch can cause serious problems in the case, that someone use it
> >> with an it8712 rev. 8 and above.
> > ...
> >> Your patch changes it8712f_wdt.c in function t8712f_wdt_update_margin():
> >>
> >>> - superio_outb((margin > 255) ? (margin / 60) : margin, WDT_TIMEOUT);
> >>> + if (revision >= 0x08)
> >>> + superio_outw(units, WDT_TIMEOUT);
> >>> + else
> >>> + superio_outb(units, WDT_TIMEOUT);
> >> but here you can't use superio_outw, because the bytes are swapped
> >> --historical reason.
> >>
> >> I suggest to substitute
> >> superio_outw(units, WDT_TIMEOUT);
> >> with
> >> superio_outb(units >> 8, WDT_TIMEOUT + 1);
> >> superio_outb(units, WDT_TIMEOUT);
> >>
> >
> > Can you keep "Andrew Paprocki" <andrew@xxxxxxxxxxx> in the loop?
> > Can you also create a patch and test it together with Andrew?
> > We need to make sure that we fix this before 2.6.25 is there.
> >
> > Thanks,
> > Wim
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/