lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <47F24F6D.6000603@inbox.com>
Date:	Tue, 01 Apr 2008 17:06:21 +0200
From:	Oliver Schuster <oliver.s@...ox.com>
To:	Wim Van Sebroeck <wim@...ana.be>
CC:	Oliver Schuster <olivers137@....com>,
	Andrew Paprocki <andrew@...iboo.com>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	LKML <linux-kernel@...r.kernel.org>
Subject: [PATCH][WATCHDOG] v2.6.25-rc7: it8712f_wdt.c contains an error -
 was Re: [WATCHDOG] v2.5.25-rc patches

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@...iboo.com> 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



View attachment "2.6.25-rc7-it8712f_wdt.patch" of type "text/x-patch" (903 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ