OSDN Git Service

Merge branch 'fix __retval() being always ignored'
authorAlexei Starovoitov <ast@kernel.org>
Thu, 20 Apr 2023 23:49:17 +0000 (16:49 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 20 Apr 2023 23:49:17 +0000 (16:49 -0700)
commit267a6e4e7870beb8896c192da175800e47c82407
tree92e34316da9c2c9e92c8fb643ff5c488ae47602e
parent4b7ef71ac977899cf7bdb09d66052926c7d249ff
parentcbb110bc6672f785cab2cb308e9cfefee07af861
Merge branch 'fix __retval() being always ignored'

Eduard Zingerman says:

====================

Florian Westphal found a bug in test_loader.c processing of __retval tag.
Because of this bug the function test_loader.c:do_prog_test_run()
never executed and all __retval test tags were ignored. See [1].

Fix for this bug uncovers two additional bugs:
- During test_verifier tests migration to inline assembly (see [2])
  I missed the fact that some tests require maps to contain mock values;
- Some issue with a new refcounted_kptr test, which causes kernel to
  produce dead lock and refcount saturation warnings when subject to
  libbpf's bpf_test_run_opts().

This series fixes the bug in __retval() processing, and address the
issue with test maps not being populated. The issue in refcounted_kptr
is not addressed, __retval tags in those tests are commented out.

I found that the following tests depend on test maps being populated:
- progs/verifier_array_access.c
- verifier/value_ptr_arith.c (planned for migration to inline assembly)

Given the small amount of these tests I decided to opt for simple
non-generic solution (see patch #4).

[1] https://lore.kernel.org/bpf/f4c4aee644425842ee6aa8edf1da68f0a8260e7c.camel@gmail.com/T/
[2] https://lore.kernel.org/bpf/20230325025524.144043-1-eddyz87@gmail.com/
====================

Signed-off-by: Alexei Starovoitov <ast@kernel.org>