Messages in this thread | | | Date | Mon, 01 Jun 2020 11:52:22 -0700 (PDT) | Subject | Re: [PATCH] flow_dissector: work around stack frame size warning | From | David Miller <> |
| |
From: Arnd Bergmann <arnd@arndb.de> Date: Fri, 29 May 2020 22:13:58 +0200
> The fl_flow_key structure is around 500 bytes, so having two of them > on the stack in one function now exceeds the warning limit after an > otherwise correct change: > > net/sched/cls_flower.c:298:12: error: stack frame size of 1056 bytes in function 'fl_classify' [-Werror,-Wframe-larger-than=] > > I suspect the fl_classify function could be reworked to only have one > of them on the stack and modify it in place, but I could not work out > how to do that. > > As a somewhat hacky workaround, move one of them into an out-of-line > function to reduce its scope. This does not necessarily reduce the stack > usage of the outer function, but at least the second copy is removed > from the stack during most of it and does not add up to whatever is > called from there. > > I now see 552 bytes of stack usage for fl_classify(), plus 528 bytes > for fl_mask_lookup(). > > Fixes: 58cff782cc55 ("flow_dissector: Parse multiple MPLS Label Stack Entries") > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Applied, thanks.
| |