tpm: Ensure that tpm chip has ops to check if it's defective

Message ID 20230623030427.908-1-mario.limonciello@amd.com
State New
Headers
Series tpm: Ensure that tpm chip has ops to check if it's defective |

Commit Message

Mario Limonciello June 23, 2023, 3:04 a.m. UTC
  The ibmvtpm doesn't have `chip->ops` set, and so trying to check
if it's a defective AMD fTPM doesn't work.

Add an extra check to tpm_amd_is_rng_defective() to ensure the
TPM being checked has `chip->ops`.

Cc: Linux regressions mailing list <regressions@lists.linux.dev>
Reported-by: Aneesh Kumar K. V <aneesh.kumar@linux.ibm.com>
Reported-by: Sachin Sant <sachinp@linux.ibm.com>
Link: https://lore.kernel.org/lkml/99B81401-DB46-49B9-B321-CF832B50CAC3@linux.ibm.com/
Tested-by: Sachin Sant <sachinp@linux.ibm.com>
Fixes: bd8621ca1510 ("tpm: Add !tpm_amd_is_rng_defective() to the hwrng_unregister() call site")
Fixes: f1324bbc4011 ("tpm: disable hwrng for fTPM on some AMD designs")
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
 drivers/char/tpm/tpm-chip.c | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Greg KH June 23, 2023, 6:08 a.m. UTC | #1
On Thu, Jun 22, 2023 at 10:04:27PM -0500, Mario Limonciello wrote:
> The ibmvtpm doesn't have `chip->ops` set, and so trying to check
> if it's a defective AMD fTPM doesn't work.
> 
> Add an extra check to tpm_amd_is_rng_defective() to ensure the
> TPM being checked has `chip->ops`.
> 
> Cc: Linux regressions mailing list <regressions@lists.linux.dev>
> Reported-by: Aneesh Kumar K. V <aneesh.kumar@linux.ibm.com>
> Reported-by: Sachin Sant <sachinp@linux.ibm.com>
> Link: https://lore.kernel.org/lkml/99B81401-DB46-49B9-B321-CF832B50CAC3@linux.ibm.com/
> Tested-by: Sachin Sant <sachinp@linux.ibm.com>
> Fixes: bd8621ca1510 ("tpm: Add !tpm_amd_is_rng_defective() to the hwrng_unregister() call site")
> Fixes: f1324bbc4011 ("tpm: disable hwrng for fTPM on some AMD designs")
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
>  drivers/char/tpm/tpm-chip.c | 3 +++
>  1 file changed, 3 insertions(+)

No cc: stable on that list above?

greg k-h
  
Mario Limonciello June 23, 2023, 1:42 p.m. UTC | #2
On 6/23/2023 1:08 AM, Greg KH wrote:
> On Thu, Jun 22, 2023 at 10:04:27PM -0500, Mario Limonciello wrote:
>> The ibmvtpm doesn't have `chip->ops` set, and so trying to check
>> if it's a defective AMD fTPM doesn't work.
>>
>> Add an extra check to tpm_amd_is_rng_defective() to ensure the
>> TPM being checked has `chip->ops`.
>>
>> Cc: Linux regressions mailing list <regressions@lists.linux.dev>
>> Reported-by: Aneesh Kumar K. V <aneesh.kumar@linux.ibm.com>
>> Reported-by: Sachin Sant <sachinp@linux.ibm.com>
>> Link: https://lore.kernel.org/lkml/99B81401-DB46-49B9-B321-CF832B50CAC3@linux.ibm.com/
>> Tested-by: Sachin Sant <sachinp@linux.ibm.com>
>> Fixes: bd8621ca1510 ("tpm: Add !tpm_amd_is_rng_defective() to the hwrng_unregister() call site")
>> Fixes: f1324bbc4011 ("tpm: disable hwrng for fTPM on some AMD designs")
>> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
>> ---
>>   drivers/char/tpm/tpm-chip.c | 3 +++
>>   1 file changed, 3 insertions(+)
> No cc: stable on that list above?

Good point, my mistake on that miss.

If Jarkko agrees with the direction of this patch, I think
it can be added while committing.

Thanks!
  
Mario Limonciello June 29, 2023, 9:58 p.m. UTC | #3
> -----Original Message-----
> From: Limonciello, Mario
> Sent: Friday, June 23, 2023 8:42 AM
> To: Greg KH <gregkh@linuxfoundation.org>
> Cc: peterhuewe@gmx.de; jarkko@kernel.org; jgg@ziepe.ca; linux-
> integrity@vger.kernel.org; linux-kernel@vger.kernel.org; Linux regressions
> mailing list <regressions@lists.linux.dev>; Aneesh Kumar K . V
> <aneesh.kumar@linux.ibm.com>; Sachin Sant <sachinp@linux.ibm.com>
> Subject: Re: [PATCH] tpm: Ensure that tpm chip has ops to check if it's
> defective
> 
> 
> On 6/23/2023 1:08 AM, Greg KH wrote:
> > On Thu, Jun 22, 2023 at 10:04:27PM -0500, Mario Limonciello wrote:
> >> The ibmvtpm doesn't have `chip->ops` set, and so trying to check
> >> if it's a defective AMD fTPM doesn't work.
> >>
> >> Add an extra check to tpm_amd_is_rng_defective() to ensure the
> >> TPM being checked has `chip->ops`.
> >>
> >> Cc: Linux regressions mailing list <regressions@lists.linux.dev>
> >> Reported-by: Aneesh Kumar K. V <aneesh.kumar@linux.ibm.com>
> >> Reported-by: Sachin Sant <sachinp@linux.ibm.com>
> >> Link: https://lore.kernel.org/lkml/99B81401-DB46-49B9-B321-
> CF832B50CAC3@linux.ibm.com/
> >> Tested-by: Sachin Sant <sachinp@linux.ibm.com>
> >> Fixes: bd8621ca1510 ("tpm: Add !tpm_amd_is_rng_defective() to the
> hwrng_unregister() call site")
> >> Fixes: f1324bbc4011 ("tpm: disable hwrng for fTPM on some AMD
> designs")
> >> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> >> ---
> >>   drivers/char/tpm/tpm-chip.c | 3 +++
> >>   1 file changed, 3 insertions(+)
> > No cc: stable on that list above?
> 
> Good point, my mistake on that miss.
> 
> If Jarkko agrees with the direction of this patch, I think
> it can be added while committing.
> 
> Thanks!

Since then, a much better patch was suggested.
Please discard this one.
https://lkml.org/lkml/2023/6/29/898
  
Jarkko Sakkinen June 30, 2023, 2:08 a.m. UTC | #4
On Fri Jun 23, 2023 at 4:42 PM EEST, Limonciello, Mario wrote:
>
> On 6/23/2023 1:08 AM, Greg KH wrote:
> > On Thu, Jun 22, 2023 at 10:04:27PM -0500, Mario Limonciello wrote:
> >> The ibmvtpm doesn't have `chip->ops` set, and so trying to check
> >> if it's a defective AMD fTPM doesn't work.
> >>
> >> Add an extra check to tpm_amd_is_rng_defective() to ensure the
> >> TPM being checked has `chip->ops`.
> >>
> >> Cc: Linux regressions mailing list <regressions@lists.linux.dev>
> >> Reported-by: Aneesh Kumar K. V <aneesh.kumar@linux.ibm.com>
> >> Reported-by: Sachin Sant <sachinp@linux.ibm.com>
> >> Link: https://lore.kernel.org/lkml/99B81401-DB46-49B9-B321-CF832B50CAC3@linux.ibm.com/
> >> Tested-by: Sachin Sant <sachinp@linux.ibm.com>
> >> Fixes: bd8621ca1510 ("tpm: Add !tpm_amd_is_rng_defective() to the hwrng_unregister() call site")
> >> Fixes: f1324bbc4011 ("tpm: disable hwrng for fTPM on some AMD designs")
> >> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> >> ---
> >>   drivers/char/tpm/tpm-chip.c | 3 +++
> >>   1 file changed, 3 insertions(+)
> > No cc: stable on that list above?
>
> Good point, my mistake on that miss.
>
> If Jarkko agrees with the direction of this patch, I think
> it can be added while committing.

Hmm... sorry Midsummer weekend, which is kind of big thing in Finland,
and also helping toe expose neo-nazi affiliated minister (sounds crazy
but it is literally true) have made me lag a bit with LKML.

I'm presuming that we are going in the direction of Jerry's patch,
right?

BR, Jarkko
  
Mario Limonciello June 30, 2023, 2:31 a.m. UTC | #5
[Public]

> -----Original Message-----
> From: Jarkko Sakkinen <jarkko@kernel.org>
> Sent: Thursday, June 29, 2023 9:09 PM
> To: Limonciello, Mario <Mario.Limonciello@amd.com>; Greg KH
> <gregkh@linuxfoundation.org>
> Cc: peterhuewe@gmx.de; jgg@ziepe.ca; linux-integrity@vger.kernel.org; linux-
> kernel@vger.kernel.org; Linux regressions mailing list
> <regressions@lists.linux.dev>; Aneesh Kumar K . V
> <aneesh.kumar@linux.ibm.com>; Sachin Sant <sachinp@linux.ibm.com>
> Subject: Re: [PATCH] tpm: Ensure that tpm chip has ops to check if it's
> defective
>
> On Fri Jun 23, 2023 at 4:42 PM EEST, Limonciello, Mario wrote:
> >
> > On 6/23/2023 1:08 AM, Greg KH wrote:
> > > On Thu, Jun 22, 2023 at 10:04:27PM -0500, Mario Limonciello wrote:
> > >> The ibmvtpm doesn't have `chip->ops` set, and so trying to check
> > >> if it's a defective AMD fTPM doesn't work.
> > >>
> > >> Add an extra check to tpm_amd_is_rng_defective() to ensure the
> > >> TPM being checked has `chip->ops`.
> > >>
> > >> Cc: Linux regressions mailing list <regressions@lists.linux.dev>
> > >> Reported-by: Aneesh Kumar K. V <aneesh.kumar@linux.ibm.com>
> > >> Reported-by: Sachin Sant <sachinp@linux.ibm.com>
> > >> Link: https://lore.kernel.org/lkml/99B81401-DB46-49B9-B321-
> CF832B50CAC3@linux.ibm.com/
> > >> Tested-by: Sachin Sant <sachinp@linux.ibm.com>
> > >> Fixes: bd8621ca1510 ("tpm: Add !tpm_amd_is_rng_defective() to the
> hwrng_unregister() call site")
> > >> Fixes: f1324bbc4011 ("tpm: disable hwrng for fTPM on some AMD
> designs")
> > >> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> > >> ---
> > >>   drivers/char/tpm/tpm-chip.c | 3 +++
> > >>   1 file changed, 3 insertions(+)
> > > No cc: stable on that list above?
> >
> > Good point, my mistake on that miss.
> >
> > If Jarkko agrees with the direction of this patch, I think
> > it can be added while committing.
>
> Hmm... sorry Midsummer weekend, which is kind of big thing in Finland,
> and also helping toe expose neo-nazi affiliated minister (sounds crazy
> but it is literally true) have made me lag a bit with LKML.
>
> I'm presuming that we are going in the direction of Jerry's patch,
> right?
>
> BR, Jarkko

Yes; let's go with Jerry's patch instead.
  

Patch

diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
index cd48033b804a..9ba433761e9a 100644
--- a/drivers/char/tpm/tpm-chip.c
+++ b/drivers/char/tpm/tpm-chip.c
@@ -524,6 +524,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;