]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
authorJakub Kicinski <kuba@kernel.org>
Thu, 2 Apr 2026 17:57:09 +0000 (10:57 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 9 Apr 2026 20:20:59 +0000 (13:20 -0700)
Cross-merge networking fixes after downstream PR (net-7.0-rc8).

Conflicts:

net/ipv6/seg6_iptunnel.c
  c3812651b522f ("seg6: separate dst_cache for input and output paths in seg6 lwtunnel")
  78723a62b969a ("seg6: add per-route tunnel source address")
https://lore.kernel.org/adZhwtOYfo-0ImSa@sirena.org.uk

net/ipv4/icmp.c
  fde29fd934932 ("ipv4: icmp: fix null-ptr-deref in icmp_build_probe()")
  d98adfbdd5c01 ("ipv4: drop ipv6_stub usage and use direct function calls")
https://lore.kernel.org/adO3dccqnr6j-BL9@sirena.org.uk

Adjacent changes:

drivers/net/ethernet/stmicro/stmmac/chain_mode.c
  51f4e090b9f8 ("net: stmmac: fix integer underflow in chain mode")
  6b4286e05508 ("net: stmmac: rename STMMAC_GET_ENTRY() -> STMMAC_NEXT_ENTRY()")

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
25 files changed:
1  2 
MAINTAINERS
drivers/net/ethernet/airoha/airoha_eth.c
drivers/net/ethernet/intel/ixgbe/ixgbe.h
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/mellanox/mlx5/core/main.c
drivers/net/ethernet/stmicro/stmmac/chain_mode.c
drivers/net/ethernet/stmicro/stmmac/dwmac-motorcomm.c
drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c
drivers/net/phy/sfp.c
drivers/net/wireless/ralink/rt2x00/rt2x00usb.c
drivers/nfc/s3fwrn5/uart.c
net/core/skbuff.c
net/ipv4/nexthop.c
net/ipv6/seg6_iptunnel.c
net/mptcp/protocol.c
net/mptcp/protocol.h
net/mptcp/subflow.c
net/netfilter/ipvs/ip_vs_ctl.c
net/netfilter/nfnetlink_log.c
net/netfilter/nfnetlink_queue.c
net/netfilter/nft_ct.c
net/rxrpc/output.c
net/tls/tls_sw.c
net/xfrm/xfrm_policy.c
tools/testing/selftests/net/Makefile

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index e76cc0cc481ec8b9d4c78da97f9568deb030e02e,d6a0f7df90807f47ca7933a1d7d0c2fba4c966fe..97b50d9b13658e318ccf670ef24e00c7237de482
@@@ -48,8 -48,8 +48,9 @@@ static size_t seg6_lwt_headroom(struct 
  }
  
  struct seg6_lwt {
-       struct dst_cache cache;
+       struct dst_cache cache_input;
+       struct dst_cache cache_output;
 +      struct in6_addr tunsrc;
        struct seg6_iptunnel_encap tuninfo[];
  };
  
@@@ -726,18 -712,6 +731,18 @@@ static int seg6_build_state(struct net 
  
        memcpy(&slwt->tuninfo, tuninfo, tuninfo_len);
  
-                       goto free_dst_cache;
 +      if (tb[SEG6_IPTUNNEL_SRC]) {
 +              slwt->tunsrc = nla_get_in6_addr(tb[SEG6_IPTUNNEL_SRC]);
 +
 +              if (ipv6_addr_any(&slwt->tunsrc) ||
 +                  ipv6_addr_is_multicast(&slwt->tunsrc) ||
 +                  ipv6_addr_loopback(&slwt->tunsrc)) {
 +                      NL_SET_ERR_MSG(extack, "invalid tunsrc address");
 +                      err = -EINVAL;
++                      goto err_destroy_output;
 +              }
 +      }
 +
        newts->type = LWTUNNEL_ENCAP_SEG6;
        newts->flags |= LWTUNNEL_STATE_INPUT_REDIRECT;
  
  
        return 0;
  
- free_dst_cache:
-       dst_cache_destroy(&slwt->cache);
- free_lwt_state:
++err_destroy_output:
++      dst_cache_destroy(&slwt->cache_output);
+ err_destroy_input:
+       dst_cache_destroy(&slwt->cache_input);
+ err_free_newts:
        kfree(newts);
        return err;
  }
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge