Skip to contentSkip to conversation

crypto: wp512: disable kmsan checks in wp512_process_buffer()

PATCH In review Arnd Bergmann 4 participants 4 messages Dec 15, 2022 – Dec 30, 2022 Crypto API

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 crypto: wp512: disable kmsan checks in wp512_process_buffer()

From: Arnd Bergmann <[email protected]>

The memory sanitizer causes excessive register spills in this function:

crypto/wp512.c:782:13: error: stack frame size (2104) exceeds limit (2048) in 'wp512_process_buffer' [-Werror,-Wframe-larger-than]

Assume that this one is safe, and mark it as needing no checks to get the stack usage back down to the normal level.

---
 crypto/wp512.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
crypto/wp512.c +1 -1
index 5e820afa3c78..07994e5ebf4e 100644
@@ -779,7 +779,7 @@ static const u64 rc[WHIRLPOOL_ROUNDS] = {
  * The core Whirlpool transform.
  */
 
-static void wp512_process_buffer(struct wp512_ctx *wctx) {
+static __no_kmsan_checks void wp512_process_buffer(struct wp512_ctx *wctx) {
 	int i, r;
 	u64 K[8];        /* the round key */
 	u64 block[8];    /* mu(buffer) */
Signature · 1 line
2.35.1
#1 lore raw
Quoted 6 lines

The memory sanitizer causes excessive register spills in this function:

crypto/wp512.c:782:13: error: stack frame size (2104) exceeds limit (2048) in 'wp512_process_buffer' [-Werror,-Wframe-larger-than]

Assume that this one is safe, and mark it as needing no checks to get the stack usage back down to the normal level.

KMSAN indeed bloats the stack frames heavily.
Wouldn't it be more preferable to further increase KMSAN's -Wframe-larger-than limit instead?
It is not intended for production anyway, and detecting a runtime stack overflow in the debug mode should not be a problem.

#2 lore raw
Quoted 4 lines · Alexander Potapenko
Quoted 3 lines

The memory sanitizer causes excessive register spills in this function:

crypto/wp512.c:782:13: error: stack frame size (2104) exceeds limit (2048) in 'wp512_process_buffer' [-Werror,-Wframe-larger-than]

Quoted 8 lines
Quoted 2 lines

Assume that this one is safe, and mark it as needing no checks to get the stack usage back down to the normal level.

KMSAN indeed bloats the stack frames heavily.
Wouldn't it be more preferable to further increase KMSAN's -Wframe-larger-than limit instead?
It is not intended for production anyway, and detecting a runtime stack overflow in the debug mode should not be a problem.

I don't actually see a lot of compiler warnings with KMSAN hitting the limit, I think we can deal with them individually.

I'd rather not raise the limit more, as that makes it harder to identify functions that use more stack than they should.

Arnd

maintainer
#3 lore raw
In reply to Arnd Bergmann
Quoted 6 lines · Arnd Bergmann

From: Arnd Bergmann <[email protected]>

The memory sanitizer causes excessive register spills in this function:

crypto/wp512.c:782:13: error: stack frame size (2104) exceeds limit (2048) in 'wp512_process_buffer' [-Werror,-Wframe-larger-than]

Quoted 7 lines

Assume that this one is safe, and mark it as needing no checks to get the stack usage back down to the normal level.

---
 crypto/wp512.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Patch applied. Thanks.

Signature · 3 lines
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt