net: sched: don't set tunnel for decap action
Action tunnel_key doesn't have a metadata/tunnel for release(decap) action. Drivers do not dereference entry->tunnel pointer for that action type, so this behavior doesn't result in a crash at the moment. However, this needs to be corrected as a preparation for updating hardware offloads API to not rely on rtnl lock, for which flow_action code will copy the tunnel data to temporary buffer to prevent concurrent action overwrite from invalidating/freeing it. Fixes: 3a7b68617de7 ("cls_api: add translator to flow_action representation") Signed-off-by: Vlad Buslov <vladbu@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
40d0690bd0
commit
3eed52842b
@ -3229,7 +3229,6 @@ int tc_setup_flow_action(struct flow_action *flow_action,
|
|||||||
entry->tunnel = tcf_tunnel_info(act);
|
entry->tunnel = tcf_tunnel_info(act);
|
||||||
} else if (is_tcf_tunnel_release(act)) {
|
} else if (is_tcf_tunnel_release(act)) {
|
||||||
entry->id = FLOW_ACTION_TUNNEL_DECAP;
|
entry->id = FLOW_ACTION_TUNNEL_DECAP;
|
||||||
entry->tunnel = tcf_tunnel_info(act);
|
|
||||||
} else if (is_tcf_pedit(act)) {
|
} else if (is_tcf_pedit(act)) {
|
||||||
for (k = 0; k < tcf_pedit_nkeys(act); k++) {
|
for (k = 0; k < tcf_pedit_nkeys(act); k++) {
|
||||||
switch (tcf_pedit_cmd(act, k)) {
|
switch (tcf_pedit_cmd(act, k)) {
|
||||||
|
Reference in New Issue
Block a user