aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/net/tun.c
diff options
context:
space:
mode:
authorYunjian Wang <wangyunjian@huawei.com>2024-01-19 18:22:35 +0800
committerDavid S. Miller <davem@davemloft.net>2024-01-22 10:58:04 +0000
commit5744ba05e7c4bff8fec133dd0f9e51ddffba92f5 (patch)
tree4c286f5e2b30176c43c645e5bb6d5e0d3e4232d4 /drivers/net/tun.c
parentnet: fix removing a namespace with conflicting altnames (diff)
downloadwireguard-linux-5744ba05e7c4bff8fec133dd0f9e51ddffba92f5.tar.xz
wireguard-linux-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/tun.c')
-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;