]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
authorJakub Kicinski <kuba@kernel.org>
Thu, 17 Jul 2025 17:56:56 +0000 (10:56 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 17 Jul 2025 18:00:33 +0000 (11:00 -0700)
Cross-merge networking fixes after downstream PR (net-6.16-rc7).

Conflicts:

Documentation/netlink/specs/ovpn.yaml
  880d43ca9aa4 ("netlink: specs: clean up spaces in brackets")
  af52020fc599 ("ovpn: reject unexpected netlink attributes")

drivers/net/phy/phy_device.c
  a44312d58e78 ("net: phy: Don't register LEDs for genphy")
  f0f2b992d818 ("net: phy: Don't register LEDs for genphy")
https://lore.kernel.org/20250710114926.7ec3a64f@kernel.org

drivers/net/wireless/intel/iwlwifi/fw/regulatory.c
drivers/net/wireless/intel/iwlwifi/mld/regulatory.c
  5fde0fcbd760 ("wifi: iwlwifi: mask reserved bits in chan_state_active_bitmap")
  ea045a0de3b9 ("wifi: iwlwifi: add support for accepting raw DSM tables by firmware")

net/ipv6/mcast.c
  ae3264a25a46 ("ipv6: mcast: Delay put pmc->idev in mld_del_delrec()")
  a8594c956cc9 ("ipv6: mcast: Avoid a duplicate pointer check in mld_del_delrec()")
https://lore.kernel.org/8cc52891-3653-4b03-a45e-05464fe495cf@kernel.org

No adjacent changes.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
28 files changed:
1  2 
Documentation/netlink/specs/ovpn.yaml
MAINTAINERS
drivers/net/ethernet/airoha/airoha_npu.c
drivers/net/ethernet/intel/i40e/i40e.h
drivers/net/ethernet/intel/ixgbe/ixgbe.h
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
drivers/net/ethernet/mellanox/mlx5/core/main.c
drivers/net/ethernet/wangxun/libwx/wx_hw.c
drivers/net/ethernet/wangxun/libwx/wx_lib.c
drivers/net/ethernet/wangxun/libwx/wx_type.h
drivers/net/hyperv/netvsc_drv.c
drivers/net/ovpn/udp.c
drivers/net/virtio_net.c
drivers/net/wireless/ath/ath12k/dp_rx.c
drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans-gen2.c
drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/tx.c
include/net/cfg80211.h
include/net/netfilter/nf_conntrack.h
net/bluetooth/l2cap_sock.c
net/ipv4/udp_offload.c
net/ipv6/mcast.c
net/ipv6/rpl_iptunnel.c
net/mptcp/protocol.c
net/netfilter/nf_conntrack_core.c
net/netfilter/nf_tables_api.c
net/packet/af_packet.c
net/smc/af_smc.c
tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json

index 17e5e9b7f5a56f1e6b5a5908be9433dca241a9c0,ba76426a542d6ed76d03398e8b2a6ce8a29c43a9..1b91045cee2e44b1aacc45239aa5269ac913f89b
@@@ -240,8 -381,8 +381,8 @@@ operations
    list:
      -
        name: peer-new
-       attribute-set: ovpn
+       attribute-set: ovpn-peer-new-input
 -      flags: [ admin-perm ]
 +      flags: [admin-perm]
        doc: Add a remote peer
        do:
          pre: ovpn-nl-pre-doit
              - peer
      -
        name: peer-set
-       attribute-set: ovpn
+       attribute-set: ovpn-peer-set-input
 -      flags: [ admin-perm ]
 +      flags: [admin-perm]
        doc: modify a remote peer
        do:
          pre: ovpn-nl-pre-doit
              - peer
      -
        name: peer-del
-       attribute-set: ovpn
+       attribute-set: ovpn-peer-del-input
 -      flags: [ admin-perm ]
 +      flags: [admin-perm]
        doc: Delete existing remote peer
        do:
          pre: ovpn-nl-pre-doit
              - keyconf
      -
        name: key-get
-       attribute-set: ovpn
+       attribute-set: ovpn-keyconf-get
 -      flags: [ admin-perm ]
 +      flags: [admin-perm]
        doc: Retrieve non-sensitive data about peer key and cipher
        do:
          pre: ovpn-nl-pre-doit
              - keyconf
      -
        name: key-swap
-       attribute-set: ovpn
+       attribute-set: ovpn-keyconf-swap-input
 -      flags: [ admin-perm ]
 +      flags: [admin-perm]
        doc: Swap primary and secondary session keys for a specific peer
        do:
          pre: ovpn-nl-pre-doit
        mcgrp: peers
      -
        name: key-del
-       attribute-set: ovpn
+       attribute-set: ovpn-keyconf-del-input
 -      flags: [ admin-perm ]
 +      flags: [admin-perm]
        doc: Delete cipher key for a specific peer
        do:
          pre: ovpn-nl-pre-doit
diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0c63c33ab0800740442a4a653a77f9f172e1dfbe,616bf4c0c8fd91020fef0300ff39b9e686f097ac..36ca27496b3c04945570c1aa8ad2130033c10234
@@@ -786,34 -783,37 +786,34 @@@ static void mld_del_delrec(struct inet6
                        break;
                pmc_prev = pmc;
        }
 -      if (pmc) {
 -              if (pmc_prev)
 -                      rcu_assign_pointer(pmc_prev->next, pmc->next);
 -              else
 -                      rcu_assign_pointer(idev->mc_tomb, pmc->next);
 -      }
 -
 -      if (pmc) {
 -              im->idev = pmc->idev;
 -              if (im->mca_sfmode == MCAST_INCLUDE) {
 -                      tomb = rcu_replace_pointer(im->mca_tomb,
 -                                                 mc_dereference(pmc->mca_tomb, pmc->idev),
 -                                                 lockdep_is_held(&im->idev->mc_lock));
 -                      rcu_assign_pointer(pmc->mca_tomb, tomb);
 -
 -                      sources = rcu_replace_pointer(im->mca_sources,
 -                                                    mc_dereference(pmc->mca_sources, pmc->idev),
 -                                                    lockdep_is_held(&im->idev->mc_lock));
 -                      rcu_assign_pointer(pmc->mca_sources, sources);
 -                      for_each_psf_mclock(im, psf)
 -                              psf->sf_crcount = idev->mc_qrv;
 -              } else {
 -                      im->mca_crcount = idev->mc_qrv;
 -              }
 -              ip6_mc_clear_src(pmc);
 -              in6_dev_put(pmc->idev);
 -              kfree_rcu(pmc, rcu);
 +      if (!pmc)
 +              return;
 +      if (pmc_prev)
 +              rcu_assign_pointer(pmc_prev->next, pmc->next);
 +      else
 +              rcu_assign_pointer(idev->mc_tomb, pmc->next);
 +
 +      im->idev = pmc->idev;
 +      if (im->mca_sfmode == MCAST_INCLUDE) {
 +              tomb = rcu_replace_pointer(im->mca_tomb,
 +                                         mc_dereference(pmc->mca_tomb, pmc->idev),
 +                                         lockdep_is_held(&im->idev->mc_lock));
 +              rcu_assign_pointer(pmc->mca_tomb, tomb);
 +
 +              sources = rcu_replace_pointer(im->mca_sources,
 +                                            mc_dereference(pmc->mca_sources, pmc->idev),
 +                                            lockdep_is_held(&im->idev->mc_lock));
 +              rcu_assign_pointer(pmc->mca_sources, sources);
 +              for_each_psf_mclock(im, psf)
 +                      psf->sf_crcount = idev->mc_qrv;
 +      } else {
 +              im->mca_crcount = idev->mc_qrv;
        }
-       in6_dev_put(pmc->idev);
 +      ip6_mc_clear_src(pmc);
++      in6_dev_put(pmc->idev);
 +      kfree_rcu(pmc, rcu);
  }
  
 -/* called with mc_lock */
  static void mld_clear_delrec(struct inet6_dev *idev)
  {
        struct ifmcaddr6 *pmc, *nextpmc;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge