Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp2950785rwb; Mon, 16 Jan 2023 01:27:54 -0800 (PST) X-Google-Smtp-Source: AMrXdXuQMIo92zyyoNCym2iPYlccaRHllKCRrV1okaH8Ug3bnfjJONUeGjVbM45AEAaeuOtXhPdD X-Received: by 2002:a17:902:d292:b0:189:b4d0:aee with SMTP id t18-20020a170902d29200b00189b4d00aeemr18443888plc.67.1673861274604; Mon, 16 Jan 2023 01:27:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673861274; cv=none; d=google.com; s=arc-20160816; b=p6zFhS+O+hraHsMkrjWdLKldHzkvz+rEjCSAJGxsVmEWjw3vEPLHjz4qPBOVEfGMOs Cgkeuy7MbWOofaOFG91EwnsDAg3I1xAYe65dRVCa+JtmsTct2SR0iIFpbB7/CkiVrHEM D+rZ3NiWCxQBi6yXw6jNGOG6u9lRcScOpY+nzWEhMUKEjdCB+U6dCdgu1X97wQpjV7fD /tslCG1uYmaQnHNkVeTPMqSffWLGWGe8qb4YOdovb/yeIR2sNa0LhSynRWV0DKa4EAhb x9BowlkNVqHpRXAzKv5WSgaLTL3vYYdv8ZXeOCyQ8d64776BVXwglhz+0tLAfnk+oqsB Q+Hw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=9BTAm4Pi/N5oQw6iBKxhdjVGII7Sg76Bx3k6f8bWLco=; b=V9vRvzf55NTKCZOARnrNglGafvHg5RdA98Df8uYyDQNsQgBLtLBxeypo8nMczzMekE xWiv3nvAQbet5yXJM02c7JUPWISiOmXu5eU6WoReaqNBPHvw80nXXQXuLX/wNYAMxaCo yjTZG3lR1nLZwrUSTdg4VZZl4eyp7kJdwRbsOkL0+cC/2R8Y+x8cCaVeD7/aQGHGR5yn n4Pei0m0oUy6uUCYc2wtgejmI0Ua/jQMcuOO8gyDvfxmjmwDZSi81ALgLj6vg0q4Fswj uM5l8SnKYuQRYBIiCtWxxESLZ31AxnBbBNTGTWYFGxwAiex//Fl5HFLG/PgdNYAU47Kh gGCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Rq5MTjXE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n15-20020a170902d2cf00b00192c8514a55si9985460plc.33.2023.01.16.01.27.48; Mon, 16 Jan 2023 01:27:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Rq5MTjXE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232089AbjAPIMj (ORCPT + 51 others); Mon, 16 Jan 2023 03:12:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43300 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232011AbjAPIMi (ORCPT ); Mon, 16 Jan 2023 03:12:38 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2946F65B1; Mon, 16 Jan 2023 00:12:37 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id BE6CC60EDF; Mon, 16 Jan 2023 08:12:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4385AC433D2; Mon, 16 Jan 2023 08:12:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1673856756; bh=WcIVGhhIJd57HmWTdUrkvlJouTMGu4zpz/MuC9iSurc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Rq5MTjXE75d9M00WJrDfQodfZimmgH7p9fFUN3wc9mzEAMyZw0AbRzjsWznYVkFfT fz4Ig8UB9FBwIZiP8OMxvR0MRslDaH7D4UyAD8pw4/oPVSXwLGwBsO56qk50KoohpH 8XA5Dg61doYwB+7USg68ECLTE3cypOp7mImpV8o3ovLr8fuTAJG7/8ZNVOiwviUlZi XrTAYPXnFQkAXTuCKdG1zyXCvIvkwoPRAiPdtgxqZm8F9YBBIxgufJZ9d0n5q6b1G5 oi8xmHtm04no1RKd+G0aFC/1mnjH+llB+f8Io6f3jMSvZYFucQKVKWJX3Ar1OwZrYu jh8EtWNdUX3AA== Date: Mon, 16 Jan 2023 10:12:31 +0200 From: Jarkko Sakkinen To: "Jason A. Donenfeld" Cc: Thorsten Leemhuis , James Bottomley , Peter Huewe , Jason Gunthorpe , Jan Dabros , regressions@lists.linux.dev, LKML , linux-integrity@vger.kernel.org, Dominik Brodowski , Herbert Xu , Johannes Altmanninger , stable@vger.kernel.org, Linus Torvalds , Vlastimil Babka Subject: Re: [PATCH v2] tpm: Allow system suspend to continue when TPM suspend fails Message-ID: References: <20230106030156.3258307-1-Jason@zx2c4.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230106030156.3258307-1-Jason@zx2c4.com> X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 06, 2023 at 04:01:56AM +0100, Jason A. Donenfeld wrote: > TPM 1 is sometimes broken across system suspends, due to races or > locking issues or something else that haven't been diagnosed or fixed > yet, most likely having to do with concurrent reads from the TPM's > hardware random number generator driver. These issues prevent the system > from actually suspending, with errors like: > > tpm tpm0: A TPM error (28) occurred continue selftest > ... > tpm tpm0: A TPM error (28) occurred attempting get random > ... > tpm tpm0: Error (28) sending savestate before suspend > tpm_tis 00:08: PM: __pnp_bus_suspend(): tpm_pm_suspend+0x0/0x80 returns 28 > tpm_tis 00:08: PM: dpm_run_callback(): pnp_bus_suspend+0x0/0x10 returns 28 > tpm_tis 00:08: PM: failed to suspend: error 28 > PM: Some devices failed to suspend, or early wake event detected > > This issue was partially fixed by 23393c646142 ("char: tpm: Protect > tpm_pm_suspend with locks"), in a last minute 6.1 commit that Linus took > directly because the TPM maintainers weren't available. However, it > seems like this just addresses the most common cases of the bug, rather > than addressing it entirely. So there are more things to fix still, > apparently. > > 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. > > Link: https://lore.kernel.org/lkml/7cbe96cf-e0b5-ba63-d1b4-f63d2e826efa@suse.cz/ > Cc: stable@vger.kernel.org # 6.1+ > Reported-by: Vlastimil Babka > Suggested-by: Linus Torvalds > Signed-off-by: Jason A. Donenfeld > --- > This is basically untested and I haven't worked out if there are any > awful implications of letting the system sleep when TPM suspend fails. > Maybe some PCRs get cleared and that will make everything explode on > resume? Maybe it doesn't matter? Somebody well versed in TPMology should > probably [n]ack this approach. > > drivers/char/tpm/tpm-interface.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c > index d69905233aff..6df9067ef7f9 100644 > --- a/drivers/char/tpm/tpm-interface.c > +++ b/drivers/char/tpm/tpm-interface.c > @@ -412,7 +412,10 @@ int tpm_pm_suspend(struct device *dev) > } > > suspended: > - return rc; > + if (rc) > + pr_err("Unable to suspend tpm-%d (error %d), but continuing system suspend\n", > + chip->dev_num, rc); > + return 0; > } > EXPORT_SYMBOL_GPL(tpm_pm_suspend); > > -- > 2.39.0 > Let me read all the threads through starting from the original report. I've had emails piling up because of getting sick before holiday, and holiday season after that. This looks sane Apologies for the lack of response. BR, Jarkko