On Thu, Jul 25, 2019 at 3:31 PM David Howells <dhowells@xxxxxxxxxx> wrote: > > 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. > > Allocate the cipher buffers from the slab instead, caching the allocated > packet crypto request memory used for DATA packet crypto in the rxrpc_call > struct. > > Fixes: 17926a79320a ("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both") > Reported-by: Arnd Bergmann <arnd@xxxxxxxx> > Signed-off-by: David Howells <dhowells@xxxxxxxxxx> > cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Acked-by: Arnd Bergmann <arnd@xxxxxxxx>