Re: TPM bug fix causes hang on suspend (2.6.35-rc4)
From: Sarah Sharp
Date: Tue Aug 10 2010 - 14:31:46 EST
On Mon, Jul 19, 2010 at 10:05:41AM -0700, Sarah Sharp wrote:
> On Sat, Jul 17, 2010 at 04:12:23PM +0200, Thomas Meyer wrote:
> > Am Freitag, den 16.07.2010, 17:00 -0700 schrieb Sarah Sharp:
> > > I recently upgraded to 2.6.35-rc4, and I discovered that suspend no
> > > longer works on my Thinkpad x200s. When I suspend with some programs
> > > open (specifically while buffy is reading my maildirs), the suspend
> > > light blinks forever and the system never suspends.
> > >
> > > I bisected the issue down to commit b5edfef, which is a merge of James
> > > Morris' security-testing-2.6 tree, that only included this commit:
> > >
> > > commit 02a077c52ef7631275a79862ffd9f3dbe9d38bc2
> > > Author: Rajiv Andrade <srajiv@xxxxxxxxxxxxxxxxxx>
> > > Date: Mon Jun 14 13:58:22 2010 -0300
> > >
> > > TPM: ReadPubEK output struct fix
> > >
> > > This patch adds a missing element of the ReadPubEK command output,
> > > that prevents future overflow of this buffer when copying the
> > > TPM output result into it.
> > >
> > > Prevents a kernel panic in case the user tries to read the
> > > pubek from sysfs.
> > >
> > > Signed-off-by: Rajiv Andrade <srajiv@xxxxxxxxxxxxxxxxxx>
> > > Signed-off-by: James Morris <jmorris@xxxxxxxxx>
> > >
> > > diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h
> > > index 8e00b4d..792868d 100644
> > > --- a/drivers/char/tpm/tpm.h
> > > +++ b/drivers/char/tpm/tpm.h
> > > @@ -224,6 +224,7 @@ struct tpm_readpubek_params_out {
> > > u8 algorithm[4];
> > > u8 encscheme[2];
> > > u8 sigscheme[2];
> > > + __be32 paramsize;
> > > u8 parameters[12]; /*assuming RSA*/
> > > __be32 keysize;
> > > u8 modulus[256];
> > >
> > > The dmesg captured over netconsole when suspend fails is attached, but
> > > it doesn't look very interesting. lspci output is also attached. I
> > > don't have any userspace programs installed that can use TPM, like
> > > trousers or libtspi1.
> > >
> > > If I try just removing the tpm_tis, tpm_bios, and tpm modules before
> > > suspending, the suspend still fails. If I recompile without TPM
> > > hardware support (CONFIG_TCG_TPM=n), suspend still fails. However, if I
> > > also turn off the securityFS config option (CONFIG_SECURITYFS),
> > > suspend succeeds.
> > >
> > > It looks like an odd commit to cause a suspend failure, but when I reset
> > > the git HEAD to the commit before the merge of this patch, and suspend
> > > works fine. Can you fix this?
> > >
> > > Sarah Sharp
> >
> > Maybe same as https://bugzilla.kernel.org/show_bug.cgi?id=16256 ?
>
> That doesn't look really similar. The user found a different patch at
> fault, and they were also able to successfully suspend when the tpm_tis
> module was removed, but suspend still breaks for me in that case.
> Suspend breaks with that commit even when I don't compile any tpm
> modules at all. But I'll try Helmut's fix[1] and let you know if it
> works.
I tried the fix, and all seemed well for a while. Then suspend randomly
broken again. I've tried to update to 2.6.35, but I have the same issue
(constant blinking suspend light and the suspend never completes).
Sarah Sharp
--
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/