after introduction of bpf_xdp_adjust_tail helper packet length
could be changed not only if xdp->data pointer has been changed
but xdp->data_end as well. making bpf_prog_test_run aware of this
possibility

Signed-off-by: Nikita V. Shirokov <tehn...@tehnerd.com>
---
 net/bpf/test_run.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/bpf/test_run.c b/net/bpf/test_run.c
index 2ced48662c1f..68c3578343b4 100644
--- a/net/bpf/test_run.c
+++ b/net/bpf/test_run.c
@@ -170,7 +170,8 @@ int bpf_prog_test_run_xdp(struct bpf_prog *prog, const 
union bpf_attr *kattr,
        xdp.rxq = &rxqueue->xdp_rxq;
 
        retval = bpf_test_run(prog, &xdp, repeat, &duration);
-       if (xdp.data != data + XDP_PACKET_HEADROOM + NET_IP_ALIGN)
+       if (xdp.data != data + XDP_PACKET_HEADROOM + NET_IP_ALIGN ||
+           xdp.data_end != xdp.data + size)
                size = xdp.data_end - xdp.data;
        ret = bpf_test_finish(kattr, uattr, xdp.data, size, retval, duration);
        kfree(data);
-- 
2.15.1

Reply via email to