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]
Date:	Tue, 04 May 2010 18:06:41 +0100
From:	Bastien Nocera <hadess@...ess.net>
To:	Dmitry Torokhov <dmitry.torokhov@...il.com>
Cc:	"H. Peter Anvin" <hpa@...or.com>, Vojtech Pavlik <vojtech@...e.cz>,
	Robert Hancock <hancockrwd@...il.com>,
	linux-kernel <linux-kernel@...r.kernel.org>, pjones@...hat.com
Subject: Re: [PATCH] Disable i8042 checks on Intel Apple Macs

On Mon, 2010-01-25 at 14:15 -0800, Dmitry Torokhov wrote:
> On Mon, Jan 25, 2010 at 01:32:42PM -0800, H. Peter Anvin wrote:
> > On 01/25/2010 08:34 AM, Vojtech Pavlik wrote:
> > > 
> > > Thus I believe that the right fix here is to figure out why the accesses
> > > to the ports 0x60/0x64 take a long time or forever on a Mac. Is it just
> > > that the kernel is timing out waiting for the i8042? Or is it something
> > > more sinister?
> > > 
> > 
> > In the A20 code in the setup code, I look for 0xFF coming back and
> > terminate the "wait for ready" loop much sooner than for other values.
> > 0xFF is a *possible* status value, but not a very *likely* one
> > (especially for repeated reads), as it would represent:
> > 
> > parity error + receive timeout + transmit timeout + keyboard lock +
> > command + selftest OK + input full + output full.
> > 
> 
> You allow up to 32 0xFFs while i8042 driver does maximum 16 reads of
> whatever - if OBF is still raised we assume i8042 is not there. Does
> that mean that reads from 0x60 is what hurts on Macs?
> 
> Bastien, could you try modifying drivers/input/serio/i8042.c::
> i8042_flush() to not call i8042_read_data() when str is 0xff and see if
> it helps with lockups?

Doesn't seem to make any difference. It still hangs after saying:
PNP: No PS/2 controller found. Probing ports directly.

The patch looks like:
         udelay(50);
+        if (str == 0xff)
+             continue;
         data = i8042_read_data();

Not sure that's what you meant above.

Pressing the power button doesn't make it carry on for me, as it used
to. Let me know if there's anything more you want me to try.

In the meantime, I'll try to get my original patch into my distribution
so I don't get bitten by half-booted kernels in the near future.

Cheers

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ