tun: fix missing dropped counter in tun_xdp_act
[ Upstream commit 5744ba05e7c4bff8fec133dd0f9e51ddffba92f5 ] The commit8ae1aff0b3
("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:8ae1aff0b3
("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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
a2232f29bf
commit
41e7decdad
@ -1622,13 +1622,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;
|
||||
|
Loading…
Reference in New Issue
Block a user