| From b97f0aff52e28f973595090773c4f3afc158dcea Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 1 Feb 2024 12:36:45 +0100 |
| Subject: tpm,tpm_tis: Avoid warning splat at shutdown |
| |
| From: Lino Sanfilippo <l.sanfilippo@kunbus.com> |
| |
| [ Upstream commit b7ab4bbd0188f3985b821fa09456b11105a8dedf ] |
| |
| If interrupts are not activated the work struct 'free_irq_work' is not |
| initialized. This results in a warning splat at module shutdown. |
| |
| Fix this by always initializing the work regardless of whether interrupts |
| are activated or not. |
| |
| cc: stable@vger.kernel.org |
| Fixes: 481c2d14627d ("tpm,tpm_tis: Disable interrupts after 1000 unhandled IRQs") |
| Reported-by: Jarkko Sakkinen <jarkko@kernel.org> |
| Closes: https://lore.kernel.org/all/CX32RFOMJUQ0.3R4YCL9MDCB96@kernel.org/ |
| Signed-off-by: Lino Sanfilippo <l.sanfilippo@kunbus.com> |
| Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/char/tpm/tpm_tis_core.c | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c |
| index 1b350412d8a6b..64c875657687d 100644 |
| --- a/drivers/char/tpm/tpm_tis_core.c |
| +++ b/drivers/char/tpm/tpm_tis_core.c |
| @@ -919,8 +919,6 @@ static int tpm_tis_probe_irq_single(struct tpm_chip *chip, u32 intmask, |
| int rc; |
| u32 int_status; |
| |
| - INIT_WORK(&priv->free_irq_work, tpm_tis_free_irq_func); |
| - |
| rc = devm_request_threaded_irq(chip->dev.parent, irq, NULL, |
| tis_int_handler, IRQF_ONESHOT | flags, |
| dev_name(&chip->dev), chip); |
| @@ -1132,6 +1130,7 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq, |
| priv->phy_ops = phy_ops; |
| priv->locality_count = 0; |
| mutex_init(&priv->locality_count_mutex); |
| + INIT_WORK(&priv->free_irq_work, tpm_tis_free_irq_func); |
| |
| dev_set_drvdata(&chip->dev, priv); |
| |
| -- |
| 2.43.0 |
| |