From: Arnd Bergmann <[email protected]> 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 <[email protected]> David H., I assume you will take this into your tree.

