[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <MN0PR12MB61012FB42B67E7A77A15CDD3E225A@MN0PR12MB6101.namprd12.prod.outlook.com>
Date: Thu, 29 Jun 2023 17:45:02 +0000
From: "Limonciello, Mario" <Mario.Limonciello@....com>
To: Jerry Snitselaar <jsnitsel@...hat.com>
CC: Michael Ellerman <mpe@...erman.id.au>,
Linux regressions mailing list <regressions@...ts.linux.dev>,
Sachin Sant <sachinp@...ux.ibm.com>,
open list <linux-kernel@...r.kernel.org>,
linuxppc-dev <linuxppc-dev@...ts.ozlabs.org>,
"jarkko@...nel.org" <jarkko@...nel.org>,
"linux-integrity@...r.kernel.org" <linux-integrity@...r.kernel.org>
Subject: RE: [6.4-rc6] Crash during a kexec operation
(tpm_amd_is_rng_defective)
[AMD Official Use Only - General]
> -----Original Message-----
> From: Jerry Snitselaar <jsnitsel@...hat.com>
> Sent: Thursday, June 29, 2023 12:43 PM
> To: Limonciello, Mario <Mario.Limonciello@....com>
> Cc: Michael Ellerman <mpe@...erman.id.au>; Linux regressions mailing list
> <regressions@...ts.linux.dev>; Sachin Sant <sachinp@...ux.ibm.com>; open
> list <linux-kernel@...r.kernel.org>; linuxppc-dev <linuxppc-
> dev@...ts.ozlabs.org>; jarkko@...nel.org; linux-integrity@...r.kernel.org
> Subject: Re: [6.4-rc6] Crash during a kexec operation
> (tpm_amd_is_rng_defective)
>
> On Thu, Jun 29, 2023 at 05:28:58PM +0000, Limonciello, Mario wrote:
> > [Public]
> >
> > > -----Original Message-----
> > > From: Jerry Snitselaar <jsnitsel@...hat.com>
> > > Sent: Thursday, June 29, 2023 12:07 PM
> > > To: Limonciello, Mario <Mario.Limonciello@....com>
> > > Cc: Michael Ellerman <mpe@...erman.id.au>; Linux regressions mailing list
> > > <regressions@...ts.linux.dev>; Sachin Sant <sachinp@...ux.ibm.com>;
> open
> > > list <linux-kernel@...r.kernel.org>; linuxppc-dev <linuxppc-
> > > dev@...ts.ozlabs.org>; jarkko@...nel.org; linux-integrity@...r.kernel.org
> > > Subject: Re: [6.4-rc6] Crash during a kexec operation
> > > (tpm_amd_is_rng_defective)
> > >
> > > On Thu, Jun 22, 2023 at 09:38:04AM -0500, Limonciello, Mario wrote:
> > > >
> > > > On 6/22/2023 7:36 AM, Michael Ellerman wrote:
> > > > > "Linux regression tracking (Thorsten Leemhuis)"
> > > <regressions@...mhuis.info> writes:
> > > > > > Hi, Thorsten here, the Linux kernel's regression tracker. Top-posting
> > > > > > for once, to make this easily accessible to everyone.
> > > > > >
> > > > > > As Linus will likely release 6.4 on this or the following Sunday a quick
> > > > > > question: is there any hope this regression might be fixed any time
> > > > > > soon?
> > > > > No.
> > > > >
> > > > > I have added the author of the commit to Cc, maybe they can help?
> > > > >
> > > > > The immediate question is, is it expected for chip->ops to be NULL in
> > > > > this path? Obviously on actual AMD systems that isn't the case,
> > > > > otherwise the code would crash there. But is the fact that chip->ops is
> > > > > NULL a bug in the ibmvtpm driver, or a possibility that has been
> > > > > overlooked by the checking code.
> > > > >
> > > > > cheers
> > > >
> > > > All that code assumes that the TPM is still functional which
> > > > seems not to be the case for your TPM.
> > > >
> > > > This should fix it:
> > > >
> > > > diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
> > > > index 5be91591cb3b..7082b031741e 100644
> > > > --- a/drivers/char/tpm/tpm-chip.c
> > > > +++ b/drivers/char/tpm/tpm-chip.c
> > > > @@ -525,6 +525,9 @@ static bool tpm_amd_is_rng_defective(struct
> > > tpm_chip
> > > > *chip)
> > > > u64 version;
> > > > int ret;
> > > >
> > > > + if (!chip->ops)
> > > > + return false;
> > > > +
> > > > if (!(chip->flags & TPM_CHIP_FLAG_TPM2))
> > > > return false;
> > >
> > >
> > > Should tpm_amd_is_rng_defective compile to nothing on non-x86
> > > architectures? This code is all about
> > > working around an issue with the AMD fTPM, right?
> > >
> >
> > That's a good point. Yes it could and that would also solve this problem.
> >
> Or I guess more accurately for non-x86 it should be:
>
> static bool tpm_amd_is_rng_defective(struct tpm_chip *chip)
> {
> return false;
> }
Right, but it should be inline. Would you mind sending something out for
your cleaner idea to supercede my other solution that still didn't merge?
Powered by blists - more mailing lists