On Wed, Oct 9, 2019 at 2:23 PM Greg Rose <[email protected]> wrote: > > From: Arnd Bergmann <[email protected]> > > Upstream commit: > commit 260637903f47f20c5918bb5c1eea52b2a28ea863 > Author: Arnd Bergmann <[email protected]> > Date: Mon Jul 22 17:00:01 2019 +0200 > > ovs: datapath: hide clang frame-overflow warnings > > Some functions in the datapath code are factored out so that each > one has a stack frame smaller than 1024 bytes with gcc. However, > when compiling with clang, the functions are inlined more aggressively > and combined again so we get > > net/openvswitch/datapath.c:1124:12: error: stack frame size of 1528 bytes > in function 'ovs_flow_cmd_set' [-Werror,-Wframe-larger-than=] > > Marking both get_flow_actions() and ovs_nla_init_match_and_action() > as 'noinline_for_stack' gives us the same behavior that we see with > gcc, and no warning. Note that this does not mean we actually use > less stack, as the functions call each other, and we still get > three copies of the large 'struct sw_flow_key' type on the stack. > > The comment tells us that this was previously considered safe, > presumably since the netlink parsing functions are called with > a known backchain that does not also use a lot of stack space. > > Fixes: 9cc9a5cb176c ("datapath: Avoid using stack larger than 1024.") > Signed-off-by: Arnd Bergmann <[email protected]> > Signed-off-by: David S. Miller <[email protected]> > > Cc: Arnd Bergmann <[email protected]> > Signed-off-by: Greg Rose <[email protected]> > --- Looks good to me.
Acked-by: Yi-Hung Wei <[email protected]> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
