This addresses feedback of v2 [2] (see [1] for v1). From my POV the open questions from v2 have been addressed. I have a set of check_func_arg cleanups which I will post as a follow up to this series. Changes in v3: - Use PTR_TO_BTF_ID in iterator context (Yonghong, Martin) - Use rcu_dereference instead of rcu_dereference_raw (Jakub) - Fix various test nits (Jakub, Andrii) Changes in v2: - Remove unnecessary sk_fullsock checks (Jakub) - Nits for test output (Jakub) - Increase number of sockets in tests to 64 (Jakub) - Handle ENOENT in tests (Jakub) - Actually test SOCKHASH iteration (myself) - Fix SOCKHASH iterator initialization (myself) 1: https://lore.kernel.org/bpf/20200828094834.23290-1-lmb@xxxxxxxxxxxxxx/ 2: https://lore.kernel.org/bpf/20200901103210.54607-1-lmb@xxxxxxxxxxxxxx/ Lorenz Bauer (6): bpf: Allow passing BTF pointers as PTR_TO_SOCKET net: sockmap: Remove unnecessary sk_fullsock checks net: Allow iterating sockmap and sockhash selftests: bpf: Ensure that BTF sockets cannot be released selftests: bpf: Add helper to compare socket cookies selftests: bpf: Test copying a sockmap via bpf_iter kernel/bpf/verifier.c | 61 ++-- net/core/sock_map.c | 284 +++++++++++++++++- .../bpf/prog_tests/reference_tracking.c | 20 +- .../selftests/bpf/prog_tests/sockmap_basic.c | 138 ++++++++- tools/testing/selftests/bpf/progs/bpf_iter.h | 9 + .../selftests/bpf/progs/bpf_iter_sockmap.c | 57 ++++ .../selftests/bpf/progs/bpf_iter_sockmap.h | 3 + .../bpf/progs/test_sk_ref_track_invalid.c | 20 ++ 8 files changed, 548 insertions(+), 44 deletions(-) create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_sockmap.c create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_sockmap.h create mode 100644 tools/testing/selftests/bpf/progs/test_sk_ref_track_invalid.c -- 2.25.1