]> git.baikalelectronics.ru Git - kernel.git/commit
virtio-net: correctly update XDP_TX counters
authorJason Wang <jasowang@redhat.com>
Tue, 31 Jul 2018 09:43:38 +0000 (17:43 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 31 Jul 2018 17:02:01 +0000 (10:02 -0700)
commitb16362a5d9e353705f15c79643b864a31bdf3e2e
tree799f43a467e6825725d957993154a84365411af7
parented7ac999d4bee08aec231c365f44e06fd00e76d2
virtio-net: correctly update XDP_TX counters

Commit da40d73263cd ("virtio_net: Add XDP related stats") tries to
count TX XDP stats in virtnet_receive(). This will cause several
issues:

- virtnet_xdp_sq() was called without checking whether or not XDP is
  set. This may cause out of bound access when there's no enough txq
  for XDP.
- Stats were updated even if there's no XDP/XDP_TX.

Fixing this by reusing virtnet_xdp_xmit() for XDP_TX which can counts
TX XDP counter itself and remove the unnecessary tx stats embedded in
rx stats.

Reported-by: syzbot+604f8271211546f5b3c7@syzkaller.appspotmail.com
Fixes: da40d73263cd ("virtio_net: Add XDP related stats")
Cc: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/virtio_net.c