openvswitch: Fix Frame-size larger than 1024 bytes warning.
There is no need to declare separate key on stack, we can just use sw_flow->key to store the key directly. This commit fixes following warning: net/openvswitch/datapath.c: In function ‘ovs_flow_cmd_new’: net/openvswitch/datapath.c:1080:1: warning: the frame size of 1040 bytes is larger than 1024 bytes [-Wframe-larger-than=] Signed-off-by: Pravin B Shelar <pshelar@ovn.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
204dfe1798
commit
190aa3e778
|
@ -928,7 +928,6 @@ static int ovs_flow_cmd_new(struct sk_buff *skb, struct genl_info *info)
|
|||
struct sw_flow_mask mask;
|
||||
struct sk_buff *reply;
|
||||
struct datapath *dp;
|
||||
struct sw_flow_key key;
|
||||
struct sw_flow_actions *acts;
|
||||
struct sw_flow_match match;
|
||||
u32 ufid_flags = ovs_nla_get_ufid_flags(a[OVS_FLOW_ATTR_UFID_FLAGS]);
|
||||
|
@ -956,20 +955,24 @@ static int ovs_flow_cmd_new(struct sk_buff *skb, struct genl_info *info)
|
|||
}
|
||||
|
||||
/* Extract key. */
|
||||
ovs_match_init(&match, &key, &mask);
|
||||
ovs_match_init(&match, &new_flow->key, &mask);
|
||||
error = ovs_nla_get_match(net, &match, a[OVS_FLOW_ATTR_KEY],
|
||||
a[OVS_FLOW_ATTR_MASK], log);
|
||||
if (error)
|
||||
goto err_kfree_flow;
|
||||
|
||||
ovs_flow_mask_key(&new_flow->key, &key, true, &mask);
|
||||
|
||||
/* Extract flow identifier. */
|
||||
error = ovs_nla_get_identifier(&new_flow->id, a[OVS_FLOW_ATTR_UFID],
|
||||
&key, log);
|
||||
&new_flow->key, log);
|
||||
if (error)
|
||||
goto err_kfree_flow;
|
||||
|
||||
/* unmasked key is needed to match when ufid is not used. */
|
||||
if (ovs_identifier_is_key(&new_flow->id))
|
||||
match.key = new_flow->id.unmasked_key;
|
||||
|
||||
ovs_flow_mask_key(&new_flow->key, &new_flow->key, true, &mask);
|
||||
|
||||
/* Validate actions. */
|
||||
error = ovs_nla_copy_actions(net, a[OVS_FLOW_ATTR_ACTIONS],
|
||||
&new_flow->key, &acts, log);
|
||||
|
@ -996,7 +999,7 @@ static int ovs_flow_cmd_new(struct sk_buff *skb, struct genl_info *info)
|
|||
if (ovs_identifier_is_ufid(&new_flow->id))
|
||||
flow = ovs_flow_tbl_lookup_ufid(&dp->table, &new_flow->id);
|
||||
if (!flow)
|
||||
flow = ovs_flow_tbl_lookup(&dp->table, &key);
|
||||
flow = ovs_flow_tbl_lookup(&dp->table, &new_flow->key);
|
||||
if (likely(!flow)) {
|
||||
rcu_assign_pointer(new_flow->sf_acts, acts);
|
||||
|
||||
|
|
Loading…
Reference in a new issue