2022-12-15 16:38:42

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] 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.

Signed-off-by: Arnd Bergmann <[email protected]>
---
crypto/wp512.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crypto/wp512.c b/crypto/wp512.c
index 5e820afa3c78..07994e5ebf4e 100644
--- a/crypto/wp512.c
+++ b/crypto/wp512.c
@@ -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) */
--
2.35.1


2022-12-16 16:10:35

by Alexander Potapenko

[permalink] [raw]
Subject: Re: [PATCH] crypto: wp512: disable kmsan checks in wp512_process_buffer()

> 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.

2022-12-16 18:38:02

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] crypto: wp512: disable kmsan checks in wp512_process_buffer()

On Fri, Dec 16, 2022, at 17:08, Alexander Potapenko wrote:
>> 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.

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

2022-12-30 15:17:22

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH] crypto: wp512: disable kmsan checks in wp512_process_buffer()

On Thu, Dec 15, 2022 at 05:29:38PM +0100, Arnd Bergmann wrote:
> 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.
>
> Signed-off-by: Arnd Bergmann <[email protected]>
> ---
> crypto/wp512.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Patch applied. Thanks.
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt