Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf...
authorJakub Kicinski <kuba@kernel.org>
Sat, 22 Apr 2023 03:32:36 +0000 (20:32 -0700)
committerJakub Kicinski <kuba@kernel.org>
Sat, 22 Apr 2023 03:32:37 +0000 (20:32 -0700)
Daniel Borkmann says:

====================
pull-request: bpf-next 2023-04-21

We've added 71 non-merge commits during the last 8 day(s) which contain
a total of 116 files changed, 13397 insertions(+), 8896 deletions(-).

The main changes are:

1) Add a new BPF netfilter program type and minimal support to hook
   BPF programs to netfilter hooks such as prerouting or forward,
   from Florian Westphal.

2) Fix race between btf_put and btf_idr walk which caused a deadlock,
   from Alexei Starovoitov.

3) Second big batch to migrate test_verifier unit tests into test_progs
   for ease of readability and debugging, from Eduard Zingerman.

4) Add support for refcounted local kptrs to the verifier for allowing
   shared ownership, useful for adding a node to both the BPF list and
   rbtree, from Dave Marchevsky.

5) Migrate bpf_for(), bpf_for_each() and bpf_repeat() macros from BPF
  selftests into libbpf-provided bpf_helpers.h header and improve
  kfunc handling, from Andrii Nakryiko.

6) Support 64-bit pointers to kfuncs needed for archs like s390x,
   from Ilya Leoshkevich.

7) Support BPF progs under getsockopt with a NULL optval,
   from Stanislav Fomichev.

8) Improve verifier u32 scalar equality checking in order to enable
   LLVM transformations which earlier had to be disabled specifically
   for BPF backend, from Yonghong Song.

9) Extend bpftool's struct_ops object loading to support links,
   from Kui-Feng Lee.

10) Add xsk selftest follow-up fixes for hugepage allocated umem,
    from Magnus Karlsson.

11) Support BPF redirects from tc BPF to ifb devices,
    from Daniel Borkmann.

12) Add BPF support for integer type when accessing variable length
    arrays, from Feng Zhou.

* tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (71 commits)
  selftests/bpf: verifier/value_ptr_arith converted to inline assembly
  selftests/bpf: verifier/value_illegal_alu converted to inline assembly
  selftests/bpf: verifier/unpriv converted to inline assembly
  selftests/bpf: verifier/subreg converted to inline assembly
  selftests/bpf: verifier/spin_lock converted to inline assembly
  selftests/bpf: verifier/sock converted to inline assembly
  selftests/bpf: verifier/search_pruning converted to inline assembly
  selftests/bpf: verifier/runtime_jit converted to inline assembly
  selftests/bpf: verifier/regalloc converted to inline assembly
  selftests/bpf: verifier/ref_tracking converted to inline assembly
  selftests/bpf: verifier/map_ptr_mixing converted to inline assembly
  selftests/bpf: verifier/map_in_map converted to inline assembly
  selftests/bpf: verifier/lwt converted to inline assembly
  selftests/bpf: verifier/loops1 converted to inline assembly
  selftests/bpf: verifier/jeq_infer_not_null converted to inline assembly
  selftests/bpf: verifier/direct_packet_access converted to inline assembly
  selftests/bpf: verifier/d_path converted to inline assembly
  selftests/bpf: verifier/ctx converted to inline assembly
  selftests/bpf: verifier/btf_ctx_access converted to inline assembly
  selftests/bpf: verifier/bpf_get_stack converted to inline assembly
  ...
====================

Link: https://lore.kernel.org/r/20230421211035.9111-1-daniel@iogearbox.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1  2 
arch/s390/net/bpf_jit_comp.c
include/linux/skbuff.h
kernel/bpf/verifier.c

Simple merge
index eb9e7bb76fa6e1cc4f82753b1fea2446178f3106,9ff2e3d5732904334100c3ddca9fe4adca7fce7b..738776ab8838621ad7653cefb31efbc6298972a4
@@@ -5066,21 -5041,18 +5066,30 @@@ static inline void skb_reset_redirect(s
        skb->redirected = 0;
  }
  
+ static inline void skb_set_redirected_noclear(struct sk_buff *skb,
+                                             bool from_ingress)
+ {
+       skb->redirected = 1;
+ #ifdef CONFIG_NET_REDIRECT
+       skb->from_ingress = from_ingress;
+ #endif
+ }
  static inline bool skb_csum_is_sctp(struct sk_buff *skb)
  {
 +#if IS_ENABLED(CONFIG_IP_SCTP)
        return skb->csum_not_inet;
 +#else
 +      return 0;
 +#endif
 +}
 +
 +static inline void skb_reset_csum_not_inet(struct sk_buff *skb)
 +{
 +      skb->ip_summed = CHECKSUM_NONE;
 +#if IS_ENABLED(CONFIG_IP_SCTP)
 +      skb->csum_not_inet = 0;
 +#endif
  }
  
  static inline void skb_set_kcov_handle(struct sk_buff *skb,
Simple merge