[REGRESSION] alg: ahash: Several tests fail during boot on Turris Omnia

From: Klaus Kudielka
Date: Sat Oct 05 2024 - 07:22:05 EST


Hello,

with mainline kernel v6.12-rc1 I noticed a regression on my Turris Omnia (Marvell Armada 385), during my regular boot testing.
Several crypto self-tests now report "test failed (wrong result)":
mv-hmac-sha256
mv-hmac-md5
mv-hmac-sh1
For reference, v6.11.0 is completely ok.

To be a bit more precise: Not all selftests reliably fail during all boots, but during most boots I get at least a single failure.

I was able to bisect this, and the culprit is:

commit 37da5d0ffa ("crypto: api - Do not wait for tests during registration")

If I counted correctly, 3 of 4 boots reported self-test errors with that commit, and
0 of 3 boots reported self-test errors with its parent.

Example boot log with self-test errors (relevant parts only):

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 6.11.0-rc1+ (...) (arm-linux-gnueabihf-gcc (Debian 14.2.0-1) 14.2.0, GNU ld (GNU Binutils for Debian) 2.43.1) #1 SMP Sat Oct 5 11:58:34 CEST 2024
[ 0.000000] CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Turris Omnia
...
[ 0.274868] marvell-cesa f1090000.crypto: CESA device successfully registered
...
[ 0.330736] alg: ahash: mv-hmac-sha256 test failed (wrong result) on test vector 1, cfg="init+update+final aligned buffer"
[ 0.332541] alg: ahash: mv-hmac-md5 test failed (wrong result) on test vector 1, cfg="init+update+final aligned buffer"
[ 0.341851] alg: self-tests for hmac(sha256) using mv-hmac-sha256 failed (rc=-22)
[ 0.352648] alg: self-tests for hmac(md5) using mv-hmac-md5 failed (rc=-22)
[ 0.352653] ------------[ cut here ]------------
[ 0.352656] ------------[ cut here ]------------
[ 0.352656] WARNING: CPU: 0 PID: 73 at crypto/testmgr.c:5908 alg_test+0x5e4/0x60c
[ 0.352659] WARNING: CPU: 1 PID: 71 at crypto/testmgr.c:5908 alg_test+0x5e4/0x60c
[ 0.352669] alg: self-tests for hmac(sha256) using mv-hmac-sha256 failed (rc=-22)
[ 0.352670] alg: self-tests for hmac(md5) using mv-hmac-md5 failed (rc=-22)
[ 0.352673] Modules linked in:
[ 0.352673] Modules linked in:
[ 0.352680] CPU: 1 UID: 0 PID: 71 Comm: cryptomgr_test Not tainted 6.11.0-rc1+ #1
[ 0.352688] Hardware name: Marvell Armada 380/385 (Device Tree)
[ 0.352691] Call trace:
[ 0.352697] unwind_backtrace from show_stack+0x10/0x14
[ 0.352717] show_stack from dump_stack_lvl+0x50/0x64
[ 0.352731] dump_stack_lvl from __warn+0x94/0xc0
[ 0.352742] __warn from warn_slowpath_fmt+0x110/0x16c
[ 0.352757] warn_slowpath_fmt from alg_test+0x5e4/0x60c
[ 0.352768] alg_test from cryptomgr_test+0x18/0x38
[ 0.352777] cryptomgr_test from kthread+0xdc/0xf8
[ 0.352788] kthread from ret_from_fork+0x14/0x28
[ 0.352797] Exception stack(0xf0fb5fb0 to 0xf0fb5ff8)
[ 0.352803] 5fa0: 00000000 00000000 00000000 00000000
[ 0.352809] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 0.352814] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 0.352818] ---[ end trace 0000000000000000 ]---
[ 0.352819] CPU: 0 UID: 0 PID: 73 Comm: cryptomgr_test Not tainted 6.11.0-rc1+ #1
[ 0.352828] Tainted: [W]=WARN
[ 0.352831] Hardware name: Marvell Armada 380/385 (Device Tree)
[ 0.352834] Call trace:
[ 0.352837] unwind_backtrace from show_stack+0x10/0x14
[ 0.352853] show_stack from dump_stack_lvl+0x50/0x64
[ 0.352866] dump_stack_lvl from __warn+0x94/0xc0
[ 0.352877] __warn from warn_slowpath_fmt+0x110/0x16c
[ 0.352891] warn_slowpath_fmt from alg_test+0x5e4/0x60c
[ 0.352902] alg_test from cryptomgr_test+0x18/0x38
[ 0.352910] cryptomgr_test from kthread+0xdc/0xf8
[ 0.352920] kthread from ret_from_fork+0x14/0x28
[ 0.352929] Exception stack(0xf0f11fb0 to 0xf0f11ff8)
[ 0.352934] 1fa0: 00000000 00000000 00000000 00000000
[ 0.352940] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 0.352946] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 0.352953] ---[ end trace 0000000000000000 ]---
[ 0.353088] alg: ahash: mv-hmac-sha1 test failed (wrong result) on test vector 0, cfg="init+update+final aligned buffer"
[ 0.354325] mv88e6085 f1072004.mdio-mii:10: switch 0x1760 detected: Marvell 88E6176, revision 1
[ 0.364023] alg: self-tests for hmac(sha1) using mv-hmac-sha1 failed (rc=-22)
[ 0.364029] ------------[ cut here ]------------
[ 0.364032] WARNING: CPU: 1 PID: 72 at crypto/testmgr.c:5908 alg_test+0x5e4/0x60c
[ 0.364043] alg: self-tests for hmac(sha1) using mv-hmac-sha1 failed (rc=-22)
[ 0.364046] Modules linked in:
[ 0.364054] CPU: 1 UID: 0 PID: 72 Comm: cryptomgr_test Tainted: G W 6.11.0-rc1+ #1
[ 0.364062] Tainted: [W]=WARN
[ 0.364065] Hardware name: Marvell Armada 380/385 (Device Tree)
[ 0.364068] Call trace:
[ 0.364072] unwind_backtrace from show_stack+0x10/0x14
[ 0.364089] show_stack from dump_stack_lvl+0x50/0x64
[ 0.364102] dump_stack_lvl from __warn+0x94/0xc0
[ 0.364114] __warn from warn_slowpath_fmt+0x110/0x16c
[ 0.364127] warn_slowpath_fmt from alg_test+0x5e4/0x60c
[ 0.364139] alg_test from cryptomgr_test+0x18/0x38
[ 0.364147] cryptomgr_test from kthread+0xdc/0xf8
[ 0.364157] kthread from ret_from_fork+0x14/0x28
[ 0.364166] Exception stack(0xf0ef9fb0 to 0xf0ef9ff8)
[ 0.364172] 9fa0: 00000000 00000000 00000000 00000000
[ 0.364177] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 0.364183] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 0.364187] ---[ end trace 0000000000000000 ]---

Best regards, Klaus

#regzbot introduced: 37da5d0ffa7b61f79156fbbd3369f17b9a1638bd