[PATCH] tpm/tpm_tis: Disable interrupts for Lenovo P620 devices

Jonathan McDowell posted 1 patch 2 years, 1 month ago
drivers/char/tpm/tpm_tis.c | 8 ++++++++
1 file changed, 8 insertions(+)
[PATCH] tpm/tpm_tis: Disable interrupts for Lenovo P620 devices
Posted by Jonathan McDowell 2 years, 1 month ago
The Lenovo ThinkStation P620 suffers from an irq storm issue like
various other Lenovo machines, so add an entry for it to
tpm_tis_dmi_table and force polling.

It is worth noting that 481c2d14627de8ecbb54dd125466e4b4a5069b47
(tpm,tpm_tis: Disable interrupts after 1000 unhandled IRQs) does not
seem to fix the problem on this machine, but setting
tpm_tis.interrupts=0 on the kernel command line does.

Cc: stable@vger.kernel.org # v6.4+
Fixes: e644b2f498d2 ("tpm, tpm_tis: Enable interrupt test")
Signed-off-by: Jonathan McDowell <noodles@meta.com>
---
 drivers/char/tpm/tpm_tis.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index cc42cf3de960..0cbd745374dc 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -162,6 +162,14 @@ static const struct dmi_system_id tpm_tis_dmi_table[] = {
 			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L590"),
 		},
 	},
+	{
+		.callback = tpm_tis_disable_irq,
+		.ident = "ThinkStation P620",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkStation P620"),
+		},
+	},
 	{
 		.callback = tpm_tis_disable_irq,
 		.ident = "UPX-TGL",
-- 
2.41.0
Re: [PATCH] tpm/tpm_tis: Disable interrupts for Lenovo P620 devices
Posted by Jarkko Sakkinen 2 years, 1 month ago
On Fri Aug 4, 2023 at 8:08 PM EEST, Jonathan McDowell wrote:
> The Lenovo ThinkStation P620 suffers from an irq storm issue like
> various other Lenovo machines, so add an entry for it to
> tpm_tis_dmi_table and force polling.
>
> It is worth noting that 481c2d14627de8ecbb54dd125466e4b4a5069b47
> (tpm,tpm_tis: Disable interrupts after 1000 unhandled IRQs) does not
> seem to fix the problem on this machine, but setting
> tpm_tis.interrupts=0 on the kernel command line does.
>
> Cc: stable@vger.kernel.org # v6.4+
> Fixes: e644b2f498d2 ("tpm, tpm_tis: Enable interrupt test")
> Signed-off-by: Jonathan McDowell <noodles@meta.com>
> ---
>  drivers/char/tpm/tpm_tis.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
> index cc42cf3de960..0cbd745374dc 100644
> --- a/drivers/char/tpm/tpm_tis.c
> +++ b/drivers/char/tpm/tpm_tis.c
> @@ -162,6 +162,14 @@ static const struct dmi_system_id tpm_tis_dmi_table[] = {
>  			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L590"),
>  		},
>  	},
> +	{
> +		.callback = tpm_tis_disable_irq,
> +		.ident = "ThinkStation P620",
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> +			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkStation P620"),
> +		},
> +	},
>  	{
>  		.callback = tpm_tis_disable_irq,
>  		.ident = "UPX-TGL",

Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>

BR, Jarkko