Am 09.05.26 um 20:51 schrieb Jarkko Sakkinen:
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]>

The issue isn't reproducible anymore. Thanks

Tested-by: Stefan Wahren <[email protected]>

Reply via email to