diff options
author | Yunjian Wang <wangyunjian@huawei.com> | 2024-01-19 18:22:35 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2024-01-22 10:58:04 +0000 |
commit | 5744ba05e7c4bff8fec133dd0f9e51ddffba92f5 (patch) | |
tree | 4c286f5e2b30176c43c645e5bb6d5e0d3e4232d4 /drivers/net | |
parent | d09486a04f5da0a812c26217213b89a3b1acf836 (diff) | |
download | linux-stable-5744ba05e7c4bff8fec133dd0f9e51ddffba92f5.tar.gz linux-stable-5744ba05e7c4bff8fec133dd0f9e51ddffba92f5.tar.bz2 linux-stable-5744ba05e7c4bff8fec133dd0f9e51ddffba92f5.zip |
tun: fix missing dropped counter in tun_xdp_act
The commit 8ae1aff0b331 ("tuntap: split out XDP logic") includes
dropped counter for XDP_DROP, XDP_ABORTED, and invalid XDP actions.
Unfortunately, that commit missed the dropped counter when error
occurs during XDP_TX and XDP_REDIRECT actions. This patch fixes
this issue.
Fixes: 8ae1aff0b331 ("tuntap: split out XDP logic")
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/tun.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/tun.c b/drivers/net/tun.c index afa5497f7c35..237fef557ba5 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -1630,13 +1630,17 @@ static int tun_xdp_act(struct tun_struct *tun, struct bpf_prog *xdp_prog, switch (act) { case XDP_REDIRECT: err = xdp_do_redirect(tun->dev, xdp, xdp_prog); - if (err) + if (err) { + dev_core_stats_rx_dropped_inc(tun->dev); return err; + } break; case XDP_TX: err = tun_xdp_tx(tun->dev, xdp); - if (err < 0) + if (err < 0) { + dev_core_stats_rx_dropped_inc(tun->dev); return err; + } break; case XDP_PASS: break; |