Here's another attempt (the first, horribly broken one, here [1]) to move the XDP_QUERY_PROG{,_HW} code out from the drivers to generic netdev code. The first patch in the series move the XDP query functionality, and the second remove XDP_QUERY_PROG{,_HW} from all drivers. Please refer to the individual commit messages for more details. Shout out to all XDP driver hackers to check that the second patch doesn't break anything (especially Jakub). I've only been able to test on the Intel NICs. Thanks, Björn [1] https://lore.kernel.org/netdev/CAJ+HfNjfcGW=b_Ckox4jXf7od7yr+Sk2dXxFyO8Qpr-WJX0q7A@xxxxxxxxxxxxxx/ Björn Töpel (2): net: xdp: refactor XDP_QUERY_PROG{,_HW} to netdev net: xdp: remove XDP_QUERY_PROG{,_HW} drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 4 - .../net/ethernet/cavium/thunder/nicvf_main.c | 3 - .../net/ethernet/freescale/dpaa2/dpaa2-eth.c | 3 - drivers/net/ethernet/intel/i40e/i40e_main.c | 3 - drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 - .../net/ethernet/intel/ixgbevf/ixgbevf_main.c | 4 - .../net/ethernet/mellanox/mlx4/en_netdev.c | 24 ---- .../net/ethernet/mellanox/mlx5/core/en_main.c | 18 --- .../ethernet/netronome/nfp/nfp_net_common.c | 4 - .../net/ethernet/qlogic/qede/qede_filter.c | 3 - drivers/net/netdevsim/bpf.c | 4 - drivers/net/netdevsim/netdevsim.h | 2 +- drivers/net/tun.c | 15 --- drivers/net/veth.c | 15 --- drivers/net/virtio_net.c | 17 --- include/linux/netdevice.h | 21 ++- include/net/xdp.h | 2 - net/core/dev.c | 125 +++++++++--------- net/core/rtnetlink.c | 33 +---- net/core/xdp.c | 9 -- 20 files changed, 77 insertions(+), 236 deletions(-) -- 2.20.1