All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luigi Semenzato <semenzato@chromium.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "Jason A. Donenfeld" <Jason@zx2c4.com>,
	Thorsten Leemhuis <regressions@leemhuis.info>,
	 James Bottomley <James.Bottomley@hansenpartnership.com>,
	Peter Huewe <peterhuewe@gmx.de>,
	 Jarkko Sakkinen <jarkko@kernel.org>,
	Jason Gunthorpe <jgg@ziepe.ca>, Jan Dabros <jsd@semihalf.com>,
	 regressions@lists.linux.dev, LKML <linux-kernel@vger.kernel.org>,
	 linux-integrity@vger.kernel.org,
	 Dominik Brodowski <linux@dominikbrodowski.net>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	 Johannes Altmanninger <aclopte@gmail.com>,
	stable@vger.kernel.org,  Vlastimil Babka <vbabka@suse.cz>,
	tbroch@chromium.org, dbasehore@chromium.org,
	 Kees Cook <keescook@chromium.org>
Subject: Re: [PATCH v2] tpm: Allow system suspend to continue when TPM suspend fails
Date: Fri, 6 Jan 2023 12:04:37 -0800	[thread overview]
Message-ID: <CAA25o9Sbkg=qD+DH-aqXY9H5R_oBtePcnqagwAGCgoUk8D-Vyg@mail.gmail.com> (raw)
In-Reply-To: <CAHk-=wjin0Rn6j+EvYV9pzrbA0G2xnHKdp_EAB6XnansQ8kpUA@mail.gmail.com>

I think it's fine to go ahead with your change, for multiple reasons.

1. I doubt that any of the ChromeOS devices using TPM 1.2 are still
being updated.
2. If the SAVESTATE command fails, it is probably better to continue
the transition to S3, and fail at resume, than to block the suspend.
The suspend is often triggered by closing the lid, so users would not
see what's going on and might put their running laptop in a backpack,
where it could overheat.
3. I don't recall bugs due to failures of TPM suspend, and I didn't
find any such bug in our database.  Many (most?) ChromeOS devices left
the TPM powered on in S3, so didn't use the suspend/resume path.

Thank you for asking!


On Fri, Jan 6, 2023 at 11:00 AM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> On Thu, Jan 5, 2023 at 7:02 PM Jason A. Donenfeld <Jason@zx2c4.com> wrote:
> >
> > In lieu of actually fixing the underlying bug, just allow system suspend
> > to continue, so that laptops still go to sleep fine. Later, this can be
> > reverted when the real bug is fixed.
>
> So the patch looks fine to me, but since there's still the ChromeOS
> discussion pending I'll wait for that to finish.
>
> Perhaps re-send or at least remind me if/when it does?
>
> Also, a query about the printout:
>
> > +       if (rc)
> > +               pr_err("Unable to suspend tpm-%d (error %d), but continuing system suspend\n",
> > +                      chip->dev_num, rc);
>
> so I suspect that 99% of the time the dev_num isn't actually all that
> useful, but what *might* be useful is which tpm driver it is.
>
> Just comparing the error dmesg output you had:
>
>   ..
>   tpm tpm0: Error (28) sending savestate before suspend
>   tpm_tis 00:08: PM: __pnp_bus_suspend(): tpm_pm_suspend+0x0/0x80 returns 28
>   ..
>
> that "tpm tpm0" output is kind of useless compared to the "tpm_tis 00:08" one.
>
> So I think "dev_err(dev, ...)" would be more useful here.
>
> Finally - and maybe I'm just being difficult here, I will note here
> again that TPM2 devices don't have this issue, because the TPM2 path
> for suspend doesn't do any of this at all.
>
> It just does
>
>         tpm_transmit_cmd(..);
>
> with a TPM2_CC_SHUTDOWN TPM_SU_STATE command, and doesn't even check
> the return value. In fact, the tpm2 code *used* to have this comment:
>
>         /* In places where shutdown command is sent there's no much we can do
>          * except print the error code on a system failure.
>          */
>         if (rc < 0 && rc != -EPIPE)
>                 dev_warn(&chip->dev, "transmit returned %d while
> stopping the TPM",
>                          rc);
>
> but it was summarily removed when doing some re-organization around
> buffer handling.
>
> So just by looking at what tpm2 does, I'm not 100% convinced that tpm1
> should do this dance at all.
>
> But having a dev_err() is probably a good idea at least as a transitional thing.
>
>                   Linus

  reply	other threads:[~2023-01-06 20:04 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-28 20:22 [REGRESSION] suspend to ram fails in 6.2-rc1 due to tpm errors Vlastimil Babka
2022-12-28 23:07 ` James Bottomley
2022-12-29  4:03   ` Jason A. Donenfeld
2022-12-29  4:16     ` Jason A. Donenfeld
2023-01-05 13:59     ` Thorsten Leemhuis
2023-01-05 14:25       ` Vlastimil Babka
2023-01-05 14:47         ` [PATCH] tpm: Disable hwrng for TPM 1 if PM_SLEEP is enabled Jason A. Donenfeld
2023-01-05 14:53           ` Jason A. Donenfeld
2023-01-05 21:58           ` Linus Torvalds
2023-01-05 22:29             ` Jason A. Donenfeld
2023-01-06  3:01               ` [PATCH v2] tpm: Allow system suspend to continue when TPM suspend fails Jason A. Donenfeld
2023-01-06 16:01                 ` Jason A. Donenfeld
     [not found]                   ` <CAA25o9RGVbiXS6ne53gdM1K706zT=hm5c-KuMWrCA_CJtJDXdw@mail.gmail.com>
2023-01-06 17:16                     ` Jason A. Donenfeld
2023-01-06 18:59                 ` Linus Torvalds
2023-01-06 20:04                   ` Luigi Semenzato [this message]
2023-01-06 22:28                     ` Linus Torvalds
2023-01-09 16:05                       ` Jason A. Donenfeld
2023-01-16  8:12                 ` Jarkko Sakkinen
2023-01-16 14:03                   ` Jason A. Donenfeld
2023-01-21  0:07                     ` Jarkko Sakkinen
2023-01-16 11:44                 ` Jarkko Sakkinen
2023-01-16 14:00                   ` Vlastimil Babka
2023-01-21  0:03                     ` Jarkko Sakkinen
2023-01-05 15:17       ` [REGRESSION] suspend to ram fails in 6.2-rc1 due to tpm errors James Bottomley
2023-01-05 15:27         ` Jason A. Donenfeld
2023-01-05 15:32           ` Jason A. Donenfeld
2023-01-09 16:08       ` Jason A. Donenfeld
2023-01-10 17:19         ` Vlastimil Babka
2023-01-20 23:47           ` Jarkko Sakkinen
2023-03-14  9:35         ` Thorsten Leemhuis
2023-03-14 12:19           ` Jarkko Sakkinen
2023-03-14 12:47             ` Jason A. Donenfeld
2023-03-14 13:05               ` Jarkko Sakkinen
2023-03-14 13:08                 ` Jarkko Sakkinen
2023-03-14 13:53                   ` Jason A. Donenfeld
2023-03-14 14:23                     ` Jarkko Sakkinen
2023-04-21 15:03                       ` Jarkko Sakkinen
2023-04-21 18:27                         ` Jason A. Donenfeld
2023-04-23 15:34                           ` Jarkko Sakkinen
2023-04-25 23:34                             ` Jarkko Sakkinen
2023-04-26  1:32                               ` Jason A. Donenfeld
2023-04-26 16:07                                 ` Jarkko Sakkinen
2023-04-26 17:00                                   ` Jarkko Sakkinen
2023-01-04  9:10 ` Johannes Altmanninger
2023-01-16 11:30 ` Jarkko Sakkinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAA25o9Sbkg=qD+DH-aqXY9H5R_oBtePcnqagwAGCgoUk8D-Vyg@mail.gmail.com' \
    --to=semenzato@chromium.org \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=Jason@zx2c4.com \
    --cc=aclopte@gmail.com \
    --cc=dbasehore@chromium.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=jarkko@kernel.org \
    --cc=jgg@ziepe.ca \
    --cc=jsd@semihalf.com \
    --cc=keescook@chromium.org \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@dominikbrodowski.net \
    --cc=peterhuewe@gmx.de \
    --cc=regressions@leemhuis.info \
    --cc=regressions@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    --cc=tbroch@chromium.org \
    --cc=torvalds@linux-foundation.org \
    --cc=vbabka@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.