Re: [PATCH 0/2] Fold checksum at the end of bpf_csum_diff and fix

From: Andrii Nakryiko
Date: Thu Jul 11 2019 - 19:50:46 EST


On Thu, Jul 11, 2019 at 2:32 AM Paolo Pisati <p.pisati@xxxxxxxxx> wrote:
>
> From: Paolo Pisati <paolo.pisati@xxxxxxxxxxxxx>
>
> After applying patch 0001, all checksum implementations i could test (x86-64, arm64 and
> arm), now agree on the return value.
>
> Patch 0002 fix the expected return value for test #13: i did the calculation manually,
> and it correspond.
>
> Unfortunately, after applying patch 0001, other test cases now fail in
> test_verifier:
>
> $ sudo ./tools/testing/selftests/bpf/test_verifier
> ...
> #417/p helper access to variable memory: size = 0 allowed on NULL (ARG_PTR_TO_MEM_OR_NULL) FAIL retval 65535 != 0
> #419/p helper access to variable memory: size = 0 allowed on != NULL stack pointer (ARG_PTR_TO_MEM_OR_NULL) FAIL retval 65535 != 0
> #423/p helper access to variable memory: size possible = 0 allowed on != NULL packet pointer (ARG_PTR_TO_MEM_OR_NULL) FAIL retval 65535 != 0

I'm not entirely sure this fix is correct, given these failures, to be honest.

Let's wait for someone who understands intended semantics for
bpf_csum_diff, before changing returned value so drastically.

But in any case, fixes for these test failures should be in your patch
series as well.


> ...
> Summary: 1500 PASSED, 0 SKIPPED, 3 FAILED
>
> And there are probably other fallouts in other selftests - someone familiar
> should take a look before applying these patches.
>
> Paolo Pisati (2):
> bpf: bpf_csum_diff: fold the checksum before returning the
> value
> bpf, selftest: fix checksum value for test #13
>
> net/core/filter.c | 2 +-
> tools/testing/selftests/bpf/verifier/array_access.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> --
> 2.17.1
>