On 01/23, Martin KaFai Lau wrote: > On 1/23/25 11:18 AM, Stanislav Fomichev wrote: > > On 01/22, Shigeru Yoshida wrote: > > > The function bpf_test_init() now returns an error if user_size > > > (.data_size_in) is less than ETH_HLEN, causing the tests to > > > fail. Adjust the data size to ensure it meets the requirement of > > > ETH_HLEN. > > > > > > Signed-off-by: Shigeru Yoshida <syoshida@xxxxxxxxxx> > > > --- > > > .../testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c | 4 ++-- > > > .../testing/selftests/bpf/prog_tests/xdp_devmap_attach.c | 8 ++++---- > > > 2 files changed, 6 insertions(+), 6 deletions(-) > > > > > > diff --git a/tools/testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c b/tools/testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c > > > index c7f74f068e78..df27535995af 100644 > > > --- a/tools/testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c > > > +++ b/tools/testing/selftests/bpf/prog_tests/xdp_cpumap_attach.c > > > @@ -52,10 +52,10 @@ static void test_xdp_with_cpumap_helpers(void) > > > ASSERT_EQ(info.id, val.bpf_prog.id, "Match program id to cpumap entry prog_id"); > > > /* send a packet to trigger any potential bugs in there */ > > > - char data[10] = {}; > > > + char data[ETH_HLEN] = {}; > > > DECLARE_LIBBPF_OPTS(bpf_test_run_opts, opts, > > > .data_in = &data, > > > - .data_size_in = 10, > > > + .data_size_in = sizeof(data), > > > .flags = BPF_F_TEST_XDP_LIVE_FRAMES, > > > .repeat = 1, > > > ); > > > > We should still keep 10, but change the ASSERT_OK below to expect the > > error instead. Looking at the comment above, the purpose of the test > > is to exercise that error case. > > > > I think the bpf_prog_test_run_opts in this dev/cpumap test is to check the > bpf_redirect_map() helper, so it expects the bpf_prog_test_run_opts to > succeed. > > It just happens the current data[10] cannot trigger the fixed bug because > the bpf prog returns a XDP_REDIRECT instead of XDP_PASS, so xdp_recv_frames > is not called. > > To test patch 1, a separate test is probably needed to trigger the bug in > xdp_recv_frames() with a bpf prog returning XDP_PASS. Ah, yes, you're right, I missed the remaining parts that make sure the redirect happens :-(