Hi Arnd, On Fri, Sep 06, 2019 at 05:12:30PM +0200, Arnd Bergmann wrote: > The nft_offload_ctx structure is much too large to put on the > stack: > > net/netfilter/nf_tables_offload.c:31:23: error: stack frame size of 1200 bytes in function 'nft_flow_rule_create' [-Werror,-Wframe-larger-than=] > > Use dynamic allocation here, as we do elsewhere in the same > function. > > Fixes: c9626a2cbdb2 ("netfilter: nf_tables: add hardware offload support") > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > --- > Since we only really care about two members of the structure, an > alternative would be a larger rewrite, but that is probably too > late for v5.4. Thanks for this patch. I'm attaching a patch to reduce this structure size a bit. Do you think this alternative patch is ok until this alternative rewrite happens? Anyway I agree we should to get this structure away from the stack, even after this is still large, so your patch (or a variant of it) will be useful sooner than later I think.
diff --git a/include/net/netfilter/nf_tables_offload.h b/include/net/netfilter/nf_tables_offload.h index db104665a9e4..cc44d29e9fd7 100644 --- a/include/net/netfilter/nf_tables_offload.h +++ b/include/net/netfilter/nf_tables_offload.h @@ -5,10 +5,10 @@ #include <net/netfilter/nf_tables.h> struct nft_offload_reg { - u32 key; - u32 len; - u32 base_offset; - u32 offset; + u8 key; + u8 len; + u8 base_offset; + u8 offset; struct nft_data data; struct nft_data mask; };