summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorYunjian Wang <wangyunjian@huawei.com>2024-01-19 13:22:35 +0300
committerDavid S. Miller <davem@davemloft.net>2024-01-22 13:58:04 +0300
commit5744ba05e7c4bff8fec133dd0f9e51ddffba92f5 (patch)
tree4c286f5e2b30176c43c645e5bb6d5e0d3e4232d4 /drivers
parentd09486a04f5da0a812c26217213b89a3b1acf836 (diff)
downloadlinux-5744ba05e7c4bff8fec133dd0f9e51ddffba92f5.tar.xz
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')
-rw-r--r--drivers/net/tun.c8
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;