Re: [PATCH] tpm: tpm_tis_spi: Use wait_woken() in wait_for_tmp_stat()

From: Jarkko Sakkinen

Date: Fri May 15 2026 - 18:41:55 EST


On Mon, May 11, 2026 at 10:10:21AM +0200, Linus Walleij wrote:
> On Sat, May 9, 2026 at 8:51 PM Jarkko Sakkinen <jarkko@xxxxxxxxxx> 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: stable@xxxxxxxxxxxxxxx # v4.19+
> > Cc: Linus Walleij <linusw@xxxxxxxxxx>
> > Reported-by: Stefan Wahren <wahrenst@xxxxxxx>
> > Closes: https://lore.kernel.org/linux-integrity/6964bec7-3dbb-453b-89ef-9b990217a8b9@xxxxxxx/
> > Fixes: 1a339b658d9d ("tpm_tis_spi: Pass the SPI IRQ down to the driver")
> > Signed-off-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>
> > ---
> > 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 <linusw@xxxxxxxxxx>

Thank you.

>
> Yours,
> Linus Walleij

BR, Jarkko