On Tue Mar 5, 2024 at 5:43 PM EET, Paul Menzel wrote: > Dear Lino, > > > Thank you for the patch. > > Am 01.02.24 um 12:36 schrieb Lino Sanfilippo: > > 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@xxxxxxxxxxxxxxx > > Fixes: 481c2d14627d ("tpm,tpm_tis: Disable interrupts after 1000 unhandled IRQs") > > Reported-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx> > > Closes: https://lore.kernel.org/all/CX32RFOMJUQ0.3R4YCL9MDCB96@xxxxxxxxxx/ > > Signed-off-by: Lino Sanfilippo <l.sanfilippo@xxxxxxxxxx> > > --- > > 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 1b350412d8a6..64c875657687 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); > > This is commit d6fb14208e22 in jarkko/next. > > I tested this patch on top of Linux 6.8-rc7 on a Dell OptiPlex 5055 [1] > and it fixes the issue there too. Thanks! If you don't mind I'll add your tested-by to the commit before I send my next pull request to Linus? BR, Jarkko