Add support to nfp to report bpf_prog ID during XDP_QUERY_PROG. Signed-off-by: Martin KaFai Lau <ka...@fb.com> Cc: Jakub Kicinski <jakub.kicin...@netronome.com> Acked-by: Alexei Starovoitov <a...@fb.com> Acked-by: Daniel Borkmann <dan...@iogearbox.net> --- drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c index 49d1756d6a8e..272354fb0f13 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c @@ -3254,9 +3254,19 @@ static int nfp_net_xdp(struct net_device *netdev, struct netdev_xdp *xdp) switch (xdp->command) { case XDP_SETUP_PROG: return nfp_net_xdp_setup(nn, xdp); - case XDP_QUERY_PROG: - xdp->prog_attached = !!nn->dp.xdp_prog; + case XDP_QUERY_PROG: { + const struct bpf_prog *xdp_prog; + + xdp_prog = nn->dp.xdp_prog; + if (xdp_prog) { + xdp->prog_id = xdp_prog->aux->id; + xdp->prog_attached = true; + } else { + xdp->prog_id = 0; + xdp->prog_attached = false; + } return 0; + } default: return -EINVAL; } -- 2.9.3