On Mon, May 11, 2026 at 10:10:21AM +0200, Linus Walleij wrote:
> On Sat, May 9, 2026 at 8:51 PM Jarkko Sakkinen <[email protected]> wrote:
> 
> > wait_event_interruptible_timeout() evaluates its condition after setting
> > the current task state to TASK_INTERRUPTIBLE.
> >
> > With CONFIG_DEBUG_ATOMIC_SLEEP this triggers a warning when the IRQ wait
> > path is used:
> >
> >     tpm_tis_status()
> >       tpm_tis_spi_read_bytes()
> >         tpm_tis_spi_transfer_full()
> >           spi_bus_lock()
> >             mutex_lock()
> >
> > Address this with the following measures:
> >
> > 1. Call wait_tpm_stat_cond() only while tasking is running.
> > 2. Use wait_woken() to wait for changes.
> >
> > Cc: [email protected] # v4.19+
> > Cc: Linus Walleij <[email protected]>
> > Reported-by: Stefan Wahren <[email protected]>
> > Closes: 
> > https://lore.kernel.org/linux-integrity/[email protected]/
> > Fixes: 1a339b658d9d ("tpm_tis_spi: Pass the SPI IRQ down to the driver")
> > Signed-off-by: Jarkko Sakkinen <[email protected]>
> > ---
> > Linus' change only unmasked a pre-existing bug but it is the change
> > realizes it in tpm_tis_spi.
> 
> Took me a while to understand this but looks right to me!
> Reviewed-by: Linus Walleij <[email protected]>

Thank you.

> 
> Yours,
> Linus Walleij

BR, Jarkko

Reply via email to