Re: [PATCH net-next] rxrpc: shut up -Wframe-larger-than= warnings
From: David Miller
Date: Mon Jul 22 2019 - 21:31:10 EST
From: Arnd Bergmann <arnd@xxxxxxxx>
Date: Mon, 22 Jul 2019 16:58:12 +0200
> rxkad sometimes triggers a warning about oversized stack frames
> when building with clang for a 32-bit architecture:
>
> net/rxrpc/rxkad.c:243:12: error: stack frame size of 1088 bytes in function 'rxkad_secure_packet' [-Werror,-Wframe-larger-than=]
> net/rxrpc/rxkad.c:501:12: error: stack frame size of 1088 bytes in function 'rxkad_verify_packet' [-Werror,-Wframe-larger-than=]
>
> The problem is the combination of SYNC_SKCIPHER_REQUEST_ON_STACK()
> in rxkad_verify_packet()/rxkad_secure_packet() with the relatively
> large scatterlist in rxkad_verify_packet_1()/rxkad_secure_packet_encrypt().
>
> The warning does not show up when using gcc, which does not inline
> the functions as aggressively, but the problem is still the same.
>
> Marking the inner functions as 'noinline_for_stack' makes clang
> behave the same way as gcc and avoids the warning.
> This may not be ideal as it leaves the underlying problem
> unchanged. If we want to actually reduce the stack usage here,
> the skcipher_request and scatterlist objects need to be moved
> off the stack.
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
David H., I assume you will take this into your tree.