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] [day] [month] [year] [list]
Date:   Tue, 11 Oct 2016 14:41:22 +0300
From:   Jarkko Sakkinen <jarkko.sakkinen@...ux.intel.com>
To:     Genki Marshall <genki@...ki.is>
Cc:     Jason Gunthorpe <jgunthorpe@...idianresearch.com>,
        Peter Huewe <peterhuewe@....de>,
        Marcel Selhorst <tpmdd@...horst.net>,
        tpmdd-devel@...ts.sourceforge.net, linux-kernel@...r.kernel.org
Subject: Re: Suspend/Resume issue in 4.8-rc8

On Mon, Oct 10, 2016 at 02:36:43AM -0400, Genki Marshall wrote:
>   Hello,
> 
> On 4.8-rc8, I'm having an issue with laptop suspend/resume for the
> Chromebook Pixel (2015). Specifically:
> 
> When on commit 24532f7 on Linus's tree (latest commit at time of
> writing) I'm having the following issue happen consistently:
> 
> 1. Close lid.
> 2. Wait for CPU to wind down and laptop lid's light to go off.
> 3. Open lid.
> 4. Observe that the computer is booting from scratch.
> 
> I noticed that 4.8-rc7 was working fine. Bisecting, I found 0c54133 to
> be the commit at which this issue starts happening, which is a
> patch to drivers/char/tpm/tpm-interface.c .
> 
> I confirmed this is still relevant as I can proceed to checkout
> 24532f7 again, do a git revert 0c54133, recompile, and the issue no
> longer happens.
> 
> It's a very small patch. Looking through the code, it's strange, as it
> seems to use the tpm_pcr_read_dev() helper correctly (to my totally
> untrained eye).
> 
> In the version with 0c54133 _reverted_, when I make the values of 'rc'
> be printed, recompile, and then resume my laptop (which again, it does
> successfully), I see the values go like:
> 
>   rc = tpm_transmit(chip, (u8 *) &cmd, READ_PCR_RESULT_SIZE, 0);
>   /* rc == 30 here */
>   ...
>   rc = be32_to_cpu(cmd.header.out.return_code);
>   /* rc == 0 here */
> 
> So it returns 0 correctly as expected. But tpm_transmit_cmd() looks
> like it should do effectively the same thing (calling tpm_transmit()
> then calling be32_to_cpu()), and it would just be that rc == 0 right
> away. It started to be difficult to debug as I can't see the results
> of prints when resuming on the broken tree (as it goes straight to
> rebooting).
> 
> Anyway, I was advised on #kernel-newbies that at this point it would
> be best to just email in like this. Let me know if it would be helpful
> for me to answer/test anything.

The commit is not in 4.8:

jsakkine at jsakkine-mobl1 in ~/projects/tpm2/git/linux-torvalds
(master) 
$ git describe --contains 0c54133    
fatal: cannot describe '0c541332231e7957f23013e37f3720db33e7804c'

It's in fact part of my 4.9 PR:

https://lkml.org/lkml/2016/9/15/333

I think the issue is this:

http://git.infradead.org/users/jjs/linux-tpmdd.git/commit/65da72b7ddcdd8990e4783d09c7e86d90ccb4121

I've sent a PR containing this fix to James Morris but AFAIK he
hasn't yet pulled it so you either have to stick to 4.8 kernel or
apply this fix manually.

Hope this helps.

/Jarkko

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ