starfive crypto list_add corruption

Chris Hofstaedtler chris at hofstaedtler.name
Sun Sep 10 13:59:54 PDT 2023


> > I got this issue, if I remember correctly, I fixed it by enabling
> > CONFIG_ARM_AMBA and CONFIG_AMBA_PL08X. It improved things a bit,

I still see the list_add corruption trace with CONFIG_ARM_AMBA and
CONFIG_AMBA_PL08X set:

[    3.528140] ------------[ cut here ]------------
[    3.528535] dwmmc_starfive 16020000.mmc: IDMAC supports 32-bit address mode.
[    3.532795] list_add corruption. next->prev should be prev (ffffffff816ec4d0), but was ffffffff80e33f38. (next=ffffffd8c0133c40).
[    3.539866] dwmmc_starfive 16020000.mmc: Using internal DMA controller.
[    3.551539] WARNING: CPU: 2 PID: 10 at lib/list_debug.c:27 __list_add_valid+0x8a/0xac
[    3.551564] Modules linked in:
[    3.551574] CPU: 2 PID: 10 Comm: kworker/u8:0 Not tainted 6.5.0zeha3-00072-g385eddf4e78f #6
[    3.551586] Hardware name: StarFive VisionFive 2 v1.2A (DT)
[    3.551592] Workqueue: events_unbound deferred_probe_work_func
[    3.551607] epc : __list_add_valid+0x8a/0xac
[    3.551618]  ra : __list_add_valid+0x8a/0xac
[    3.551628] epc : ffffffff804d21be ra : ffffffff804d21be sp : ffffffc80006bb50
[    3.551636]  gp : ffffffff81723980 tp : ffffffd8c0156780 t0 : 2000000000000000
[    3.551644]  t1 : 000000000000006c t2 : 206464615f747369 s0 : ffffffc80006bb60
[    3.551652]  s1 : ffffffd8c200ae40 a0 : 0000000000000075 a1 : 0000000000000018
[    3.551659]  a2 : 0000000000000010 a3 : 0000000000000000 a4 : 0000000000000000
[    3.551665]  a5 : 0000000000000000 a6 : ffffffd8c0242640 a7 : 0000000000000038
[    3.551672]  s2 : ffffffd8c0133c40 s3 : ffffffff816ec400 s4 : ffffffd8c00f7410
[    3.551680]  s5 : ffffffd8c200af30 s6 : ffffffff816ec4d0 s7 : ffffffd8c004c038
[    3.551687]  s8 : 0000000000000402 s9 : ffffffff80024be4 s10: 0000000000001000
[    3.551694]  s11: ffffffd8c008fc00 t3 : ffffffff81736f17 t4 : ffffffff81736f17
[    3.551701]  t5 : ffffffff81736f18 t6 : ffffffff81736f17
[    3.551707] status: 0000000200000120 badaddr: 0000000000000000 cause: 0000000000000003
[    3.551715] [<ffffffff804d21be>] __list_add_valid+0x8a/0xac
[    3.551727] [<ffffffff808672a8>] starfive_cryp_probe+0x184/0x3fa
[    3.551745] [<ffffffff8061fcfa>] platform_probe+0x4e/0x92
[    3.551759] [<ffffffff8061d96a>] really_probe+0x82/0x210
[    3.551770] [<ffffffff8061db54>] __driver_probe_device+0x5c/0xd0
[    3.551782] [<ffffffff8061dbf4>] driver_probe_device+0x2c/0xb0
[    3.551793] [<ffffffff8061dce6>] __device_attach_driver+0x6e/0x8e
[    3.551805] [<ffffffff8061bc66>] bus_for_each_drv+0x5c/0xb0
[    3.551816] [<ffffffff8061dfa4>] __device_attach+0x82/0x144
[    3.551827] [<ffffffff8061e1dc>] device_initial_probe+0xe/0x16
[    3.551839] [<ffffffff8061cb76>] bus_probe_device+0x86/0x88
[    3.551849] [<ffffffff8061d73c>] deferred_probe_work_func+0x86/0xbe
[    3.551861] [<ffffffff80024a0c>] process_one_work+0x162/0x284
[    3.551876] [<ffffffff80024cd2>] worker_thread+0x1a4/0x348
[    3.551889] [<ffffffff8002bde6>] kthread+0xc2/0xd6
[    3.551900] [<ffffffff8000336a>] ret_from_fork+0xa/0x1c
[    3.551913] ---[ end trace 0000000000000000 ]---

> > name: StarFive VisionFive 2 v1.2A (DT) epc : crypto_wait_for_test+0x8e/0x92
[..]
> I'll investigate this error.

I also see this panic:

[    3.558296] jh7110-crypto 16000000.crypto: will run requests pump with realtime priority
[    3.565961] dwmmc_starfive 16020000.mmc: Version ID is 290a
[    3.566016] dwmmc_starfive 16020000.mmc: DW MMC controller at irq 70,32 bit host data width,32 deep fifo
[    3.574329] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    3.577585] mmc_host mmc1: card is polling.
[    3.606327] Unable to handle kernel paging request at virtual address ffffffff800fab24
[    3.820748] Oops [#1]
[    3.823027] Modules linked in:
[    3.826090] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W          6.5.0zeha3-00072-g385eddf4e78f #6
[    3.832229] mmc_host mmc1: Bus speed (slot 0) = 49500000Hz (slot req 400000Hz, actual 399193HZ div = 62)
[    3.835566] Hardware name: StarFive VisionFive 2 v1.2A (DT)
[    3.850595] epc : starfive_rsa_enc_core+0x30/0x116
[    3.855402]  ra : starfive_rsa_enc+0x5e/0xbc
[    3.859679] epc : ffffffff8086937a ra : ffffffff808694be sp : ffffffc800023910
[    3.866898]  gp : ffffffff81723980 tp : ffffffd8c0150000 t0 : ffffffd8c22380c8
[    3.874117]  t1 : 0000000000000000 t2 : 472f9351d07df710 s0 : ffffffc800023960
[    3.881335]  s1 : ffffffd8c013ea80 a0 : ffffffd8c013ea80 a1 : 0000000000000001
[    3.888553]  a2 : 0000010000000000 a3 : ffffffd8c0133c40 a4 : 0000000000000002
[    3.895770]  a5 : ffffffff800fab24 a6 : ffffffd8ff1d6d90 a7 : 0000000000000000
[    3.902988]  s2 : ffffffd8c013ea40 s3 : ffffffd8c2238180 s4 : 0000000000000001
[    3.910206]  s5 : ffffffd8c22380b0 s6 : ffffffd8c0133c40 s7 : 00000000000002a8
[    3.917425]  s8 : ffffffff8114c240 s9 : 000000001f030000 s10: 0000000000000001
[    3.924642]  s11: ffffffd8c0048300 t3 : 0a1255840a4b7df8 t4 : 28fc2f2b1f3b4e7d
[    3.931861]  t5 : e2bb8080e13469b3 t6 : ffffffd8c2238440
[    3.937170] status: 0000000200000120 badaddr: ffffffff800fab24 cause: 000000000000000f
[    3.945083] [<ffffffff8086937a>] starfive_rsa_enc_core+0x30/0x116
[    3.951183] [<ffffffff808694be>] starfive_rsa_enc+0x5e/0xbc
[    3.956762] [<ffffffff8045edc4>] pkcs1pad_verify+0xb2/0xea
[    3.962256] [<ffffffff8045e21a>] crypto_sig_verify+0xa2/0xd0
[    3.967919] [<ffffffff8047e8c0>] public_key_verify_signature+0x168/0x1d2
[    3.974625] [<ffffffff80480018>] x509_check_for_self_signed+0x58/0xa0
[    3.981071] [<ffffffff8047f486>] x509_cert_parse+0x148/0x19e
[    3.986735] [<ffffffff8047fd08>] x509_key_preparse+0x20/0x18c
[    3.992485] [<ffffffff8047d8b4>] asymmetric_key_preparse+0x52/0x86
[    3.998668] [<ffffffff8044fcb8>] __key_create_or_update+0x16c/0x372
[    4.004941] [<ffffffff8044fecc>] key_create_or_update+0xe/0x16
[    4.010780] [<ffffffff8047fc78>] x509_load_certificate_list+0x86/0xf6
[    4.017226] [<ffffffff80c3a59a>] regulatory_init_db+0x92/0x124
[    4.023068] [<ffffffff800020f0>] do_one_initcall+0x38/0x17c
[    4.028646] [<ffffffff80c00f1c>] kernel_init_freeable+0x1a2/0x204
[    4.034749] [<ffffffff80bb4b56>] kernel_init+0x1e/0x10a
[    4.039979] [<ffffffff8000336a>] ret_from_fork+0xa/0x1c
[    4.045218] Code: 0205 84aa 8a2e 000f 0140 3783 030b 4709 8793 4007 (c398) 2783 
[    4.052715] ---[ end trace 0000000000000000 ]---
[    4.057339] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    4.064990] SMP: stopping secondary CPUs
[    4.068927] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]---

Maybe this can also be investigated.

Thanks,
Chris




More information about the linux-riscv mailing list