linux/drivers/net/hyperv
Haiyang Zhang 184367dce4 hv_netvsc: Fix XDP refcnt for synthetic and VF NICs
The caller of XDP_SETUP_PROG has already incremented refcnt in
__bpf_prog_get(), so drivers should only increment refcnt by
num_queues - 1.

To fix the issue, update netvsc_xdp_set() to add the correct number
to refcnt.

Hold a refcnt in netvsc_xdp_set()’s other caller, netvsc_attach().

And, do the same in netvsc_vf_setxdp(). Otherwise, every time when VF is
removed and added from the host side, the refcnt will be decreased by one,
which may cause page fault when unloading xdp program.

Fixes: 351e158139 ("hv_netvsc: Add XDP support")
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-02-07 11:33:01 +01:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile hv_netvsc: Add XDP support 2020-01-25 10:43:19 +01:00
hyperv_net.h hv_netvsc: Add XDP support 2020-01-25 10:43:19 +01:00
netvsc.c hv_netvsc: Add XDP support 2020-01-25 10:43:19 +01:00
netvsc_bpf.c hv_netvsc: Fix XDP refcnt for synthetic and VF NICs 2020-02-07 11:33:01 +01:00
netvsc_drv.c hv_netvsc: Fix XDP refcnt for synthetic and VF NICs 2020-02-07 11:33:01 +01:00
netvsc_trace.c hv_netvsc: add trace points 2018-03-17 20:10:27 -04:00
netvsc_trace.h hv_netvsc: add trace points 2018-03-17 20:10:27 -04:00
rndis_filter.c hv_netvsc: Add XDP support 2020-01-25 10:43:19 +01:00