lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <dd55ba91a5aebce0e643cab5d57e4c87a006600f.camel@gmail.com>
Date: Sat, 10 May 2025 10:32:53 +0200
From: Klaus Kudielka <klaus.kudielka@...il.com>
To: Herbert Xu <herbert@...dor.apana.org.au>, Corentin Labbe
	 <clabbe.montjoie@...il.com>
Cc: regressions@...ts.linux.dev, linux-kernel@...r.kernel.org, Linux Crypto
 Mailing List <linux-crypto@...r.kernel.org>, Boris Brezillon
 <bbrezillon@...nel.org>, EBALARD Arnaud	 <Arnaud.Ebalard@....gouv.fr>,
 Romain Perier <romain.perier@...il.com>
Subject: Re: [v3 PATCH] crypto: marvell/cesa - Do not chain submitted
 requests

On Thu, 2025-05-08 at 13:22 +0800, Herbert Xu wrote:
> v3 simplifies it a little bit:
>  
> ---8<---
> This driver tries to chain requests together before submitting them
> to hardware in order to reduce completion interrupts.
> 
> However, it even extends chains that have already been submitted
> to hardware.  This is dangerous because there is no way of knowing
> whether the hardware has already read the DMA memory in question
> or not.
> 
> Fix this by splitting the chain list into two.  One for submitted
> requests and one for requests that have not yet been submitted.
> Only extend the latter.
> 
> Reported-by: Klaus Kudielka <klaus.kudielka@...il.com>
> Fixes: 85030c5168f1 ("crypto: marvell - Add support for chaining crypto requests in TDMA mode")
> Cc: <stable@...r.kernel.org>
> Signed-off-by: Herbert Xu <herbert@...dor.apana.org.au>


[...]


So, I am back at the hardware (armada-385-turris-omnia), and gave this patch a try.
CONFIG_CRYPTO_DEV_MARVELL_CESA=m

Upon modprobe marvell-cesa, I get the following results.



v6.15-rc5, unmodified
=====================

[   73.061653] marvell-cesa f1090000.crypto: CESA device successfully registered
[   73.115082] alg: ahash: mv-hmac-sha1 test failed (wrong result) on test vector 2, cfg="import/export"
[   73.115206] alg: ahash: mv-hmac-md5 test failed (wrong result) on test vector 6, cfg="init+update+update+final two even splits"
[   73.124364] alg: self-tests for hmac(sha1) using mv-hmac-sha1 failed (rc=-22)
[   73.135887] alg: self-tests for hmac(md5) using mv-hmac-md5 failed (rc=-22)
[   73.135893] ------------[ cut here ]------------
[   73.135902] ------------[ cut here ]------------
[   73.135896] WARNING: CPU: 0 PID: 394 at crypto/testmgr.c:5871 alg_test+0x5f0/0x614
[   73.135906] WARNING: CPU: 1 PID: 397 at crypto/testmgr.c:5871 alg_test+0x5f0/0x614
[   73.135911] alg: self-tests for hmac(md5) using mv-hmac-md5 failed (rc=-22)
[   73.135914] Modules linked in: marvell_cesa
[   73.135918] alg: self-tests for hmac(sha1) using mv-hmac-sha1 failed (rc=-22)
[   73.135921]  libdes
[   73.135922] Modules linked in:
[   73.135924]  libaes
[   73.135925]  marvell_cesa libdes

[   73.135929]  libaes
[   73.135932] CPU: 0 UID: 0 PID: 394 Comm: cryptomgr_test Not tainted 6.15.0-rc5 #3 NONE 
[   73.135940] Hardware name: Marvell Armada 380/385 (Device Tree)
[   73.135943] Call trace: 
[   73.135948]  unwind_backtrace from show_stack+0x10/0x14
[   73.135963]  show_stack from dump_stack_lvl+0x50/0x64
[   73.135973]  dump_stack_lvl from __warn+0x7c/0xd4
[   73.135982]  __warn from warn_slowpath_fmt+0x110/0x16c
[   73.135994]  warn_slowpath_fmt from alg_test+0x5f0/0x614
[   73.136004]  alg_test from cryptomgr_test+0x18/0x38
[   73.136011]  cryptomgr_test from kthread+0xe8/0x204
[   73.136021]  kthread from ret_from_fork+0x14/0x28
[   73.136028] Exception stack(0xf0ac1fb0 to 0xf0ac1ff8)
[   73.136033] 1fa0:                                     00000000 00000000 00000000 00000000
[   73.136038] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   73.136042] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[   73.136045] ---[ end trace 0000000000000000 ]---
[   73.136046] CPU: 1 UID: 0 PID: 397 Comm: cryptomgr_test Not tainted 6.15.0-rc5 #3 NONE 
[   73.136052] Hardware name: Marvell Armada 380/385 (Device Tree)
[   73.136055] Call trace: 
[   73.136057]  unwind_backtrace from show_stack+0x10/0x14
[   73.136070]  show_stack from dump_stack_lvl+0x50/0x64
[   73.136079]  dump_stack_lvl from __warn+0x7c/0xd4
[   73.136087]  __warn from warn_slowpath_fmt+0x110/0x16c
[   73.136098]  warn_slowpath_fmt from alg_test+0x5f0/0x614
[   73.136108]  alg_test from cryptomgr_test+0x18/0x38
[   73.136115]  cryptomgr_test from kthread+0xe8/0x204
[   73.136123]  kthread from ret_from_fork+0x14/0x28
[   73.136130] Exception stack(0xf0ac9fb0 to 0xf0ac9ff8)
[   73.136135] 9fa0:                                     00000000 00000000 00000000 00000000
[   73.136140] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   73.136144] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[   73.136147] ---[ end trace 0000000000000000 ]---
[   73.137628] alg: ahash: mv-hmac-sha256 test failed (wrong result) on test vector 0, cfg="init+update+final aligned buffer"
[   73.148747] alg: self-tests for hmac(sha256) using mv-hmac-sha256 failed (rc=-22)
[   73.148755] ------------[ cut here ]------------
[   73.148760] WARNING: CPU: 0 PID: 399 at crypto/testmgr.c:5871 alg_test+0x5f0/0x614
[   73.148783] alg: self-tests for hmac(sha256) using mv-hmac-sha256 failed (rc=-22)
[   73.148791] Modules linked in: marvell_cesa libdes libaes
[   73.148827] CPU: 0 UID: 0 PID: 399 Comm: cryptomgr_test Tainted: G        W           6.15.0-rc5 #3 NONE 
[   73.148840] Tainted: [W]=WARN
[   73.148842] Hardware name: Marvell Armada 380/385 (Device Tree)
[   73.148847] Call trace: 
[   73.148854]  unwind_backtrace from show_stack+0x10/0x14
[   73.148878]  show_stack from dump_stack_lvl+0x50/0x64
[   73.148893]  dump_stack_lvl from __warn+0x7c/0xd4
[   73.148912]  __warn from warn_slowpath_fmt+0x110/0x16c
[   73.148929]  warn_slowpath_fmt from alg_test+0x5f0/0x614
[   73.148951]  alg_test from cryptomgr_test+0x18/0x38
[   73.148960]  cryptomgr_test from kthread+0xe8/0x204
[   73.148970]  kthread from ret_from_fork+0x14/0x28
[   73.148977] Exception stack(0xf0addfb0 to 0xf0addff8)
[   73.148982] dfa0:                                     00000000 00000000 00000000 00000000
[   73.148987] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   73.148991] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[   73.148994] ---[ end trace 0000000000000000 ]---



v6.15-rc5, with the v3 PATCH
============================

[   28.374751] marvell-cesa f1090000.crypto: CESA device successfully registered
[   28.427503] alg: ahash: mv-hmac-sha1 test failed (wrong result) on test vector 0, cfg="init+update+final misaligned buffer"
[   28.427520] alg: ahash: mv-hmac-sha256 test failed (wrong result) on test vector 2, cfg="init+update+update+final two even splits"
[   28.438688] alg: self-tests for hmac(sha1) using mv-hmac-sha1 failed (rc=-22)
[   28.438693] ------------[ cut here ]------------
[   28.438695] WARNING: CPU: 1 PID: 392 at crypto/testmgr.c:5871 alg_test+0x5f0/0x614
[   28.450482] alg: self-tests for hmac(sha1) using mv-hmac-sha1 failed (rc=-22)
[   28.450486] Modules linked in:
[   28.450485] alg: self-tests for hmac(sha256) using mv-hmac-sha256 failed (rc=-22)
[   28.450489] ------------[ cut here ]------------
[   28.450490]  marvell_cesa libdes libaes
[   28.450494] WARNING: CPU: 0 PID: 395 at crypto/testmgr.c:5871 alg_test+0x5f0/0x614
[   28.450504] alg: self-tests for hmac(sha256) using mv-hmac-sha256 failed (rc=-22)
[   28.450502] CPU: 1 UID: 0 PID: 392 Comm: cryptomgr_test Not tainted 6.15.0-rc5+ #4 NONE 
[   28.450508] Modules linked in:
[   28.450510] Hardware name: Marvell Armada 380/385 (Device Tree)
[   28.450511]  marvell_cesa
[   28.450513] Call trace: 
[   28.450514]  libdes libaes
[   28.450519]  unwind_backtrace from show_stack+0x10/0x14
[   28.450534]  show_stack from dump_stack_lvl+0x50/0x64
[   28.450544]  dump_stack_lvl from __warn+0x7c/0xd4
[   28.450554]  __warn from warn_slowpath_fmt+0x110/0x16c
[   28.450565]  warn_slowpath_fmt from alg_test+0x5f0/0x614
[   28.450575]  alg_test from cryptomgr_test+0x18/0x38
[   28.450582]  cryptomgr_test from kthread+0xe8/0x204
[   28.450592]  kthread from ret_from_fork+0x14/0x28
[   28.450599] Exception stack(0xf0b09fb0 to 0xf0b09ff8)
[   28.450604] 9fa0:                                     00000000 00000000 00000000 00000000
[   28.450609] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   28.450613] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[   28.450616] ---[ end trace 0000000000000000 ]---
[   28.450617] CPU: 0 UID: 0 PID: 395 Comm: cryptomgr_test Not tainted 6.15.0-rc5+ #4 NONE 
[   28.450624] Hardware name: Marvell Armada 380/385 (Device Tree)
[   28.450626] Call trace: 
[   28.450628]  unwind_backtrace from show_stack+0x10/0x14
[   28.450640]  show_stack from dump_stack_lvl+0x50/0x64
[   28.450650]  dump_stack_lvl from __warn+0x7c/0xd4
[   28.450658]  __warn from warn_slowpath_fmt+0x110/0x16c
[   28.450669]  warn_slowpath_fmt from alg_test+0x5f0/0x614
[   28.450679]  alg_test from cryptomgr_test+0x18/0x38
[   28.450686]  cryptomgr_test from kthread+0xe8/0x204
[   28.450694]  kthread from ret_from_fork+0x14/0x28
[   28.450701] Exception stack(0xf0aa9fb0 to 0xf0aa9ff8)
[   28.450706] 9fa0:                                     00000000 00000000 00000000 00000000
[   28.450711] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   28.450716] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[   28.450718] ---[ end trace 0000000000000000 ]---
[   28.454686] alg: ahash: mv-md5 test failed (wrong result) on test vector 1, cfg="init+update+final aligned buffer"
[   28.465109] alg: self-tests for md5 using mv-md5 failed (rc=-22)
[   28.465120] ------------[ cut here ]------------
[   28.465125] WARNING: CPU: 1 PID: 385 at crypto/testmgr.c:5871 alg_test+0x5f0/0x614
[   28.465140] alg: self-tests for md5 using mv-md5 failed (rc=-22)
[   28.465143] Modules linked in: marvell_cesa libdes libaes
[   28.465172] CPU: 1 UID: 0 PID: 385 Comm: cryptomgr_test Tainted: G        W           6.15.0-rc5+ #4 NONE 
[   28.465181] Tainted: [W]=WARN
[   28.465183] Hardware name: Marvell Armada 380/385 (Device Tree)
[   28.465186] Call trace: 
[   28.465190]  unwind_backtrace from show_stack+0x10/0x14
[   28.465205]  show_stack from dump_stack_lvl+0x50/0x64
[   28.465215]  dump_stack_lvl from __warn+0x7c/0xd4
[   28.465224]  __warn from warn_slowpath_fmt+0x110/0x16c
[   28.465235]  warn_slowpath_fmt from alg_test+0x5f0/0x614
[   28.465246]  alg_test from cryptomgr_test+0x18/0x38
[   28.465253]  cryptomgr_test from kthread+0xe8/0x204
[   28.465262]  kthread from ret_from_fork+0x14/0x28
[   28.465270] Exception stack(0xf0ae9fb0 to 0xf0ae9ff8)
[   28.465275] 9fa0:                                     00000000 00000000 00000000 00000000
[   28.465280] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   28.465284] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[   28.465287] ---[ end trace 0000000000000000 ]---
[   28.465317] alg: ahash: mv-hmac-md5 setkey failed on test vector 0; expected_error=0, actual_error=-80, flags=0x1
[   28.475674] alg: self-tests for hmac(md5) using mv-hmac-md5 failed (rc=-80)
[   28.475685] ------------[ cut here ]------------
[   28.475694] WARNING: CPU: 0 PID: 390 at crypto/testmgr.c:5871 alg_test+0x5f0/0x614
[   28.475716] alg: self-tests for hmac(md5) using mv-hmac-md5 failed (rc=-80)
[   28.475724] Modules linked in: marvell_cesa libdes libaes
[   28.475752] CPU: 0 UID: 0 PID: 390 Comm: cryptomgr_test Tainted: G        W           6.15.0-rc5+ #4 NONE 
[   28.475770] Tainted: [W]=WARN
[   28.475772] Hardware name: Marvell Armada 380/385 (Device Tree)
[   28.475774] Call trace: 
[   28.475780]  unwind_backtrace from show_stack+0x10/0x14
[   28.475799]  show_stack from dump_stack_lvl+0x50/0x64
[   28.475818]  dump_stack_lvl from __warn+0x7c/0xd4
[   28.475831]  __warn from warn_slowpath_fmt+0x110/0x16c
[   28.475853]  warn_slowpath_fmt from alg_test+0x5f0/0x614
[   28.475865]  alg_test from cryptomgr_test+0x18/0x38
[   28.475872]  cryptomgr_test from kthread+0xe8/0x204
[   28.475881]  kthread from ret_from_fork+0x14/0x28
[   28.475888] Exception stack(0xf0b05fb0 to 0xf0b05ff8)
[   28.475893] 5fa0:                                     00000000 00000000 00000000 00000000
[   28.475897] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   28.475902] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[   28.475904] ---[ end trace 0000000000000000 ]---


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ