Hi David, hi Jakub, The following pull-request contains BPF updates for your *net-next* tree. We've added 45 non-merge commits during the last 15 day(s) which contain a total of 52 files changed, 3122 insertions(+), 384 deletions(-). The main changes are: 1) Introduce bpf timers, from Alexei. 2) Add sockmap support for unix datagram socket, from Cong. 3) Fix potential memleak and UAF in the verifier, from He. 4) Add bpf_get_func_ip helper, from Jiri. 5) Improvements to generic XDP mode, from Kumar. 6) Support for passing xdp_md to XDP programs in bpf_prog_run, from Zvi. Please consider pulling these changes from: git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git Thanks a lot! Also thanks to reporters, reviewers and testers of commits in this pull-request: Andrii Nakryiko, Jesper Dangaard Brouer, John Fastabend, Martin KaFai Lau, Masami Hiramatsu, Song Liu, Toke Høiland-Jørgensen, Willem de Bruijn, Yonghong Song ---------------------------------------------------------------- The following changes since commit 5e437416ff66981d8154687cfdf7de50b1d82bfc: Merge branch 'dsa-mv88e6xxx-topaz-fixes' (2021-07-01 11:51:36 -0700) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git for you to fetch changes up to c50524ec4e3ad97d7d963268abd859c6413fbeb4: Merge branch 'sockmap: add sockmap support for unix datagram socket' (2021-07-15 18:17:51 -0700) ---------------------------------------------------------------- Alan Maguire (1): libbpf: Allow specification of "kprobe/function+offset" Alexei Starovoitov (16): Merge branch 'bpf: support input xdp_md context in BPF_PROG_TEST_RUN' Merge branch 'Generic XDP improvements' bpf: Sync tools/include/uapi/linux/bpf.h bpf: Prepare bpf_prog_put() to be called from irq context. bpf: Factor out bpf_spin_lock into helpers. bpf: Introduce bpf timers. bpf: Add map side support for bpf timers. bpf: Prevent pointer mismatch in bpf_timer_init. bpf: Remember BTF of inner maps. bpf: Relax verifier recursion check. bpf: Implement verifier support for validation of async callbacks. bpf: Teach stack depth check about async callbacks. selftests/bpf: Add bpf_timer test. selftests/bpf: Add a test with bpf_timer in inner map. Merge branch 'Add bpf_get_func_ip helper' Merge branch 'sockmap: add sockmap support for unix datagram socket' Cong Wang (11): sock_map: Relax config dependency to CONFIG_NET sock_map: Lift socket state restriction for datagram sockets af_unix: Implement ->read_sock() for sockmap af_unix: Set TCP_ESTABLISHED for datagram sockets too af_unix: Add a dummy ->close() for sockmap af_unix: Implement ->psock_update_sk_prot() af_unix: Implement unix_dgram_bpf_recvmsg() selftests/bpf: Factor out udp_socketpair() selftests/bpf: Factor out add_to_sockmap() selftests/bpf: Add a test case for unix sockmap selftests/bpf: Add test cases for redirection between udp and unix Daniel Borkmann (1): Merge branch 'bpf-timers' He Fengqing (1): bpf: Fix potential memleak and UAF in the verifier. Jesper Dangaard Brouer (1): samples/bpf: xdp_redirect_cpu_user: Cpumap qsize set larger default Jiri Olsa (7): bpf, x86: Store caller's ip in trampoline stack bpf: Enable BPF_TRAMP_F_IP_ARG for trampolines with call_get_func_ip bpf: Add bpf_get_func_ip helper for tracing programs bpf: Add bpf_get_func_ip helper for kprobe programs selftests/bpf: Add test for bpf_get_func_ip helper libbpf: Add bpf_program__attach_kprobe_opts function selftests/bpf: Add test for bpf_get_func_ip in kprobe+offset probe Kumar Kartikeya Dwivedi (5): net: core: Split out code to run generic XDP prog bitops: Add non-atomic bitops for pointers bpf: cpumap: Implement generic cpumap bpf: devmap: Implement devmap prog execution for generic XDP bpf: Tidy xdp attach selftests Kuniyuki Iwashima (1): bpf: Fix a typo of reuseport map in bpf.h. Martynas Pumputis (1): libbpf: Fix reuse of pinned map on older kernel Tobias Klauser (1): selftests/bpf: Remove unused variable in tc_tunnel prog Zvi Effron (4): bpf: Add function for XDP meta data length check bpf: Support input xdp_md context in BPF_PROG_TEST_RUN bpf: Support specifying ingress via xdp_md context in BPF_PROG_TEST_RUN selftests/bpf: Add test for xdp_md context in BPF_PROG_TEST_RUN MAINTAINERS | 1 + arch/x86/net/bpf_jit_comp.c | 19 + include/linux/bitops.h | 50 +++ include/linux/bpf.h | 100 +++-- include/linux/bpf_verifier.h | 19 +- include/linux/btf.h | 1 + include/linux/filter.h | 3 +- include/linux/netdevice.h | 2 + include/linux/skbuff.h | 10 +- include/linux/typecheck.h | 9 + include/net/af_unix.h | 12 + include/net/xdp.h | 5 + include/uapi/linux/bpf.h | 85 ++++- kernel/bpf/Kconfig | 2 +- kernel/bpf/arraymap.c | 21 ++ kernel/bpf/btf.c | 77 +++- kernel/bpf/cpumap.c | 116 +++++- kernel/bpf/devmap.c | 49 ++- kernel/bpf/hashtab.c | 105 +++++- kernel/bpf/helpers.c | 340 ++++++++++++++++- kernel/bpf/local_storage.c | 4 +- kernel/bpf/map_in_map.c | 8 + kernel/bpf/syscall.c | 53 ++- kernel/bpf/trampoline.c | 12 +- kernel/bpf/verifier.c | 379 ++++++++++++++++++- kernel/trace/bpf_trace.c | 33 +- net/bpf/test_run.c | 109 +++++- net/core/Makefile | 2 - net/core/dev.c | 103 +++--- net/core/filter.c | 10 +- net/core/sock_map.c | 22 +- net/ipv4/udp_bpf.c | 1 - net/unix/Makefile | 1 + net/unix/af_unix.c | 85 ++++- net/unix/unix_bpf.c | 122 +++++++ samples/bpf/xdp_redirect_cpu_user.c | 22 +- scripts/bpf_doc.py | 2 + tools/include/uapi/linux/bpf.h | 85 ++++- tools/lib/bpf/libbpf.c | 104 +++++- .../selftests/bpf/prog_tests/get_func_ip_test.c | 53 +++ .../selftests/bpf/prog_tests/sockmap_listen.c | 406 +++++++++++++++++---- tools/testing/selftests/bpf/prog_tests/timer.c | 55 +++ tools/testing/selftests/bpf/prog_tests/timer_mim.c | 69 ++++ .../bpf/prog_tests/xdp_context_test_run.c | 105 ++++++ .../selftests/bpf/prog_tests/xdp_cpumap_attach.c | 43 +-- .../selftests/bpf/prog_tests/xdp_devmap_attach.c | 39 +- .../testing/selftests/bpf/progs/get_func_ip_test.c | 73 ++++ tools/testing/selftests/bpf/progs/test_tc_tunnel.c | 1 - .../bpf/progs/test_xdp_context_test_run.c | 20 + tools/testing/selftests/bpf/progs/timer.c | 297 +++++++++++++++ tools/testing/selftests/bpf/progs/timer_mim.c | 88 +++++ .../testing/selftests/bpf/progs/timer_mim_reject.c | 74 ++++ 52 files changed, 3122 insertions(+), 384 deletions(-) create mode 100644 net/unix/unix_bpf.c create mode 100644 tools/testing/selftests/bpf/prog_tests/get_func_ip_test.c create mode 100644 tools/testing/selftests/bpf/prog_tests/timer.c create mode 100644 tools/testing/selftests/bpf/prog_tests/timer_mim.c create mode 100644 tools/testing/selftests/bpf/prog_tests/xdp_context_test_run.c create mode 100644 tools/testing/selftests/bpf/progs/get_func_ip_test.c create mode 100644 tools/testing/selftests/bpf/progs/test_xdp_context_test_run.c create mode 100644 tools/testing/selftests/bpf/progs/timer.c create mode 100644 tools/testing/selftests/bpf/progs/timer_mim.c create mode 100644 tools/testing/selftests/bpf/progs/timer_mim_reject.c