Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
authorJakub Kicinski <kuba@kernel.org>
Thu, 22 Feb 2024 23:24:56 +0000 (15:24 -0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 22 Feb 2024 23:29:26 +0000 (15:29 -0800)
Cross-merge networking fixes after downstream PR.

Conflicts:

net/ipv4/udp.c
  f796feabb9f5 ("udp: add local "peek offset enabled" flag")
  56667da7399e ("net: implement lockless setsockopt(SO_PEEK_OFF)")

Adjacent changes:

net/unix/garbage.c
  aa82ac51d633 ("af_unix: Drop oob_skb ref before purging queue in GC.")
  11498715f266 ("af_unix: Remove io_uring code for GC.")

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
27 files changed:
1  2 
MAINTAINERS
drivers/media/rc/bpf-lirc.c
drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
drivers/net/gtp.c
drivers/net/phy/realtek.c
include/linux/mlx5/mlx5_ifc.h
include/net/tcp.h
kernel/bpf/helpers.c
kernel/bpf/verifier.c
net/core/sock.c
net/ipv4/udp.c
net/ipv6/addrconf.c
net/iucv/iucv.c
net/mctp/route.c
net/mptcp/pm_netlink.c
net/mptcp/protocol.c
net/mptcp/protocol.h
net/mptcp/subflow.c
net/netfilter/nf_tables_api.c
net/sched/act_mirred.c
net/sched/cls_flower.c
net/unix/af_unix.c
net/unix/garbage.c
security/security.c
tools/testing/selftests/drivers/net/bonding/bond_options.sh

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc net/core/sock.c
Simple merge
diff --cc net/ipv4/udp.c
index 38cce7cc51f65ce6a4ead15974dd5fcecd3881c7,e474b201900f9317069a31e4b507964fe11b2297..a8acea17b4e5344d022ae8f8eb674d1a36f8035a
@@@ -1589,12 -1589,7 +1589,8 @@@ int udp_init_sock(struct sock *sk
  
  void skb_consume_udp(struct sock *sk, struct sk_buff *skb, int len)
  {
-       if (unlikely(READ_ONCE(udp_sk(sk)->peeking_with_offset))) {
-               bool slow = lock_sock_fast(sk);
 -      sk_peek_offset_bwd(sk, len);
++      if (unlikely(READ_ONCE(udp_sk(sk)->peeking_with_offset)))
 +              sk_peek_offset_bwd(sk, len);
-               unlock_sock_fast(sk, slow);
-       }
  
        if (!skb_unref(skb))
                return;
Simple merge
diff --cc net/iucv/iucv.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 51acf795f096016d132cdeb067214e28d6326614,2a81880dac7b7b464b5ae9443fa3b2863cd76471..fa39b626523851df29275f1448d30a7390e7e0fb
@@@ -339,22 -309,29 +347,10 @@@ static void __unix_gc(struct work_struc
        /* Here we are. Hitlist is filled. Die. */
        __skb_queue_purge(&hitlist);
  
- #if IS_ENABLED(CONFIG_AF_UNIX_OOB)
-       while (!list_empty(&gc_candidates)) {
-               u = list_entry(gc_candidates.next, struct unix_sock, link);
-               if (u->oob_skb) {
-                       struct sk_buff *skb = u->oob_skb;
-                       u->oob_skb = NULL;
-                       kfree_skb(skb);
-               }
-       }
- #endif
        spin_lock(&unix_gc_lock);
  
 -      /* There could be io_uring registered files, just push them back to
 -       * the inflight list
 -       */
 -      list_for_each_entry_safe(u, next, &gc_candidates, link)
 -              list_move_tail(&u->link, &gc_inflight_list);
 -
        /* All candidates should have been detached by now. */
 -      BUG_ON(!list_empty(&gc_candidates));
 +      WARN_ON_ONCE(!list_empty(&gc_candidates));
  
        /* Paired with READ_ONCE() in wait_for_unix_gc(). */
        WRITE_ONCE(gc_in_progress, false);
Simple merge