diff options
author | Paolo Abeni | 2024-01-09 12:42:00 +0100 |
---|---|---|
committer | Paolo Abeni | 2024-01-09 16:23:26 +0100 |
commit | a7fe0881d9b78d402bbd9067dd4503a57c57a1d9 (patch) | |
tree | b2e19866605ca697ad0a6efa160c8c20cf95528f /net/sched | |
parent | 9b0f510971470b495a707a4475d5a065c6e4d1f6 (diff) | |
parent | ac631873c9e7a50d2a8de457cfc4b9f86666403e (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Merge in late fixes to prepare for the 6.8 net-next PR
No conflicts.
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'net/sched')
-rw-r--r-- | net/sched/act_ct.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c index c3e004b5b820..6124d8b128d1 100644 --- a/net/sched/act_ct.c +++ b/net/sched/act_ct.c @@ -850,7 +850,6 @@ static int tcf_ct_handle_fragments(struct net *net, struct sk_buff *skb, if (err || !frag) return err; - skb_get(skb); err = nf_ct_handle_fragments(net, skb, zone, family, &proto, &mru); if (err) return err; @@ -999,12 +998,8 @@ TC_INDIRECT_SCOPE int tcf_ct_act(struct sk_buff *skb, const struct tc_action *a, nh_ofs = skb_network_offset(skb); skb_pull_rcsum(skb, nh_ofs); err = tcf_ct_handle_fragments(net, skb, family, p->zone, &defrag); - if (err == -EINPROGRESS) { - retval = TC_ACT_STOLEN; - goto out_clear; - } if (err) - goto drop; + goto out_frag; err = nf_ct_skb_network_trim(skb, family); if (err) @@ -1091,6 +1086,11 @@ out_clear: qdisc_skb_cb(skb)->pkt_len = skb->len; return retval; +out_frag: + if (err != -EINPROGRESS) + tcf_action_inc_drop_qstats(&c->common); + return TC_ACT_CONSUMED; + drop: tcf_action_inc_drop_qstats(&c->common); return TC_ACT_SHOT; |