tpm: spi: do not call blocking ops when !TASK_RUNNING; during shutdown

Stefan Wahren <[email protected]>
Newsgroups org.kernel.vger.linux-integrity,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel
Message-ID <[email protected]>
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:

[   43.287416] do not call blocking ops when !TASK_RUNNING; state=1 set 
at [<000000005a2107f3>] prepare_to_wait_event+0x54/0x14c
[   43.299009] WARNING: CPU: 0 PID: 1 at kernel/sched/core.c:8857 
__might_sleep+0x74/0x7c
[   43.306920] Modules linked in: polyval_ce flexcan rtc_rv3028 can_dev 
mse102x phy_can_transceiver fuse autofs4
[   43.316838] CPU: 0 UID: 0 PID: 1 Comm: systemd-shutdow Not tainted 
6.18.23-00002-g626a194342f0 #2 PREEMPT
[   43.326471] Hardware name: chargebyte Charge SOM Evaluation Kit (DT)
[   43.332807] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS 
BTYPE=--)
[   43.339757] pc : __might_sleep+0x74/0x7c
[   43.343675] lr : __might_sleep+0x74/0x7c
[   43.347592] sp : ffff800081aab720
[   43.350894] x29: ffff800081aab720 x28: 0000000000000080 x27: 
ffff000000235880
[   43.358018] x26: ffff800081897000 x25: 0000000000000018 x24: 
0000000000000000
[   43.365142] x23: ffff800081aab907 x22: 0000000000000000 x21: 
0000000000000080
[   43.372266] x20: 000000000000010f x19: ffff80008131cd00 x18: 
0000000000000001
[   43.379390] x17: 0000000000000000 x16: 000000000017d600 x15: 
ffff00003fda4680
[   43.386514] x14: 0000000000017e01 x13: 0000000000000209 x12: 
0000000000000000
[   43.393638] x11: 00000000000000c0 x10: 0000000000000950 x9 : 
ffff800081aab5a0
[   43.400762] x8 : ffff0000000d89b0 x7 : ffff00003fda3f00 x6 : 
000000013417d29a
[   43.407886] x5 : 0000000000000000 x4 : 0000000000000002 x3 : 
0000000000000010
[   43.415010] x2 : 0000000000000000 x1 : 0000000000000000 x0 : 
ffff0000000d8000
[   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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.