RE: tpm: spi: do not call blocking ops when !TASK_RUNNING; during shutdown
Peng Fan <[email protected]>
| Newsgroups | org.kernel.vger.linux-integrity,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel |
|---|---|
| Message-ID | <PAXPR04MB84598325136E394E0A7D94D6882C2@PAXPR04MB8459.eurprd04.prod.outlook.com> |
> Subject: tpm: spi: do not call blocking ops when !TASK_RUNNING; > during shutdown > > Hi, > we use a custom i.MX93 board, which based on Phytec Phycore i.MX93 > with a TPM connected via SPI. If I enable > CONFIG_DEBUG_ATOMIC_SLEEP=y in our kernel config with mainline > kernel 6.18.23 and reboot our board, I will get the following warning: > ffff0000000d8000 The issue seems at drivers/char/tpm/tpm_tis_core.c 94 rc = wait_event_interruptible_timeout(*queue, 95 wait_for_tpm_stat_cond(chip, sts_mask, check_cancel, 96 &canceled), 97 timeout); wait_event_interruptible_timeout set task to !TASK_RUNNING, but wait_for_tpm_stat_cond still calls into mutex_lock. Regards Peng > [ 43.422135] Call trace: > [ 43.424570] __might_sleep+0x74/0x7c (P) > [ 43.428487] mutex_lock+0x24/0x80 > [ 43.431797] spi_bus_lock+0x20/0x50 > [ 43.435281] tpm_tis_spi_transfer_full+0x70/0x2c4 > [ 43.439979] tpm_tis_spi_read_bytes+0x3c/0x48 > [ 43.444321] tpm_tis_status+0x58/0xf8 > [ 43.447978] wait_for_tpm_stat_cond+0x30/0x90 > [ 43.452329] wait_for_tpm_stat+0x1cc/0x2e0 > [ 43.456419] tpm_tis_send_data+0xdc/0x334 > [ 43.460423] tpm_tis_send_main+0x74/0x160 > [ 43.464427] tpm_tis_send+0xd4/0x13c > [ 43.467998] tpm_transmit+0xc4/0x3c4 > [ 43.471569] tpm_transmit_cmd+0x38/0xd4 > [ 43.475399] tpm2_shutdown+0x6c/0xa4 > [ 43.478970] tpm_class_shutdown+0x60/0x88 > [ 43.482974] device_shutdown+0x130/0x25c > [ 43.486891] kernel_restart+0x44/0xa4 > [ 43.490549] __do_sys_reboot+0x114/0x254 > [ 43.494466] __arm64_sys_reboot+0x24/0x30 > [ 43.498470] invoke_syscall+0x48/0x10c > [ 43.502214] el0_svc_common.constprop.0+0x40/0xe0 > [ 43.506911] do_el0_svc+0x1c/0x28 > [ 43.510222] el0_svc+0x34/0xec > [ 43.513273] el0t_64_sync_handler+0xa0/0xe4 > [ 43.517441] el0t_64_sync+0x198/0x19c > > Best regards