]> git.baikalelectronics.ru Git - kernel.git/commit
net: sched: Fix setting last executed chain on skb extension
authorPaul Blakey <paulb@mellanox.com>
Mon, 6 Apr 2020 15:36:56 +0000 (18:36 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 Apr 2020 01:32:08 +0000 (18:32 -0700)
commit7b1f2e906bf9c6dd9186a75f12fa86c91de17cba
tree56dbda2d4d9d88cce8a814dd16da93a62ddfa620
parent1acca5fe9462e798c3b9ceffe466fb4a8fcaa3b0
net: sched: Fix setting last executed chain on skb extension

After driver sets the missed chain on the tc skb extension it is
consumed (deleted) by tc_classify_ingress and tc jumps to that chain.
If tc now misses on this chain (either no match, or no goto action),
then last executed chain remains 0, and the skb extension is not re-added,
and the next datapath (ovs) will start from 0.

Fix that by setting last executed chain to the chain read from the skb
extension, so if there is a miss, we set it back.

Fixes: 31fb806a8fa1 ("net: sched: Support specifying a starting chain via tc skb ext")
Reviewed-by: Oz Shlomo <ozsh@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Paul Blakey <paulb@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_api.c