]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Merge tag 'net-next-7.1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 15 Apr 2026 01:36:10 +0000 (18:36 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 15 Apr 2026 01:36:10 +0000 (18:36 -0700)
Pull networking updates from Jakub Kicinski:
 "Core & protocols:

   - Support HW queue leasing, allowing containers to be granted access
     to HW queues for zero-copy operations and AF_XDP

   - Number of code moves to help the compiler with inlining. Avoid
     output arguments for returning drop reason where possible

   - Rework drop handling within qdiscs to include more metadata about
     the reason and dropping qdisc in the tracepoints

   - Remove the rtnl_lock use from IP Multicast Routing

   - Pack size information into the Rx Flow Steering table pointer
     itself. This allows making the table itself a flat array of u32s,
     thus making the table allocation size a power of two

   - Report TCP delayed ack timer information via socket diag

   - Add ip_local_port_step_width sysctl to allow distributing the
     randomly selected ports more evenly throughout the allowed space

   - Add support for per-route tunsrc in IPv6 segment routing

   - Start work of switching sockopt handling to iov_iter

   - Improve dynamic recvbuf sizing in MPTCP, limit burstiness and avoid
     buffer size drifting up

   - Support MSG_EOR in MPTCP

   - Add stp_mode attribute to the bridge driver for STP mode selection.
     This addresses concerns about call_usermodehelper() usage

   - Remove UDP-Lite support (as announced in 2023)

   - Remove support for building IPv6 as a module. Remove the now
     unnecessary function calling indirection

  Cross-tree stuff:

   - Move Michael MIC code from generic crypto into wireless, it's
     considered insecure but some WiFi networks still need it

  Netfilter:

   - Switch nft_fib_ipv6 module to no longer need temporary dst_entry
     object allocations by using fib6_lookup() + RCU.

     Florian W reports this gets us ~13% higher packet rate

   - Convert IPVS's global __ip_vs_mutex to per-net service_mutex and
     switch the service tables to be per-net. Convert some code that
     walks the service lists to use RCU instead of the service_mutex

   - Add more opinionated input validation to lower security exposure

   - Make IPVS hash tables to be per-netns and resizable

  Wireless:

   - Finished assoc frame encryption/EPPKE/802.1X-over-auth

   - Radar detection improvements

   - Add 6 GHz incumbent signal detection APIs

   - Multi-link support for FILS, probe response templates and client
     probing

   - New APIs and mac80211 support for NAN (Neighbor Aware Networking,
     aka Wi-Fi Aware) so less work must be in firmware

  Driver API:

   - Add numerical ID for devlink instances (to avoid having to create
     fake bus/device pairs just to have an ID). Support shared devlink
     instances which span multiple PFs

   - Add standard counters for reporting pause storm events (implement
     in mlx5 and fbnic)

   - Add configuration API for completion writeback buffering (implement
     in mana)

   - Support driver-initiated change of RSS context sizes

   - Support DPLL monitoring input frequency (implement in zl3073x)

   - Support per-port resources in devlink (implement in mlx5)

  Misc:

   - Expand the YAML spec for Netfilter

  Drivers

   - Software:
      - macvlan: support multicast rx for bridge ports with shared
        source MAC address
      - team: decouple receive and transmit enablement for IEEE 802.3ad
        LACP "independent control"

   - Ethernet high-speed NICs:
      - nVidia/Mellanox:
         - support high order pages in zero-copy mode (for payload
           coalescing)
         - support multiple packets in a page (for systems with 64kB
           pages)
      - Broadcom 25-400GE (bnxt):
         - implement XDP RSS hash metadata extraction
         - add software fallback for UDP GSO, lowering the IOMMU cost
      - Broadcom 800GE (bnge):
         - add link status and configuration handling
         - add various HW and SW statistics
      - Marvell/Cavium:
         - NPC HW block support for cn20k
      - Huawei (hinic3):
         - add mailbox / control queue
         - add rx VLAN offload
         - add driver info and link management

   - Ethernet NICs:
      - Marvell/Aquantia:
         - support reading SFP module info on some AQC100 cards
      - Realtek PCI (r8169):
         - add support for RTL8125cp
      - Realtek USB (r8152):
         - support for the RTL8157 5Gbit chip
         - add 2500baseT EEE status/configuration support

   - Ethernet NICs embedded and off-the-shelf IP:
      - Synopsys (stmmac):
         - cleanup and reorganize SerDes handling and PCS support
         - cleanup descriptor handling and per-platform data
         - cleanup and consolidate MDIO defines and handling
         - shrink driver memory use for internal structures
         - improve Tx IRQ coalescing
         - improve TCP segmentation handling
         - add support for Spacemit K3
      - Cadence (macb):
         - support PHYs that have inband autoneg disabled with GEM
         - support IEEE 802.3az EEE
         - rework usrio capabilities and handling
      - AMD (xgbe):
         - improve power management for S0i3
         - improve TX resilience for link-down handling

   - Virtual:
      - Google cloud vNIC:
         - support larger ring sizes in DQO-QPL mode
         - improve HW-GRO handling
         - support UDP GSO for DQO format
      - PCIe NTB:
         - support queue count configuration

   - Ethernet PHYs:
      - automatically disable PHY autonomous EEE if MAC is in charge
      - Broadcom:
         - add BCM84891/BCM84892 support
      - Micrel:
         - support for LAN9645X internal PHY
      - Realtek:
         - add RTL8224 pair order support
         - support PHY LEDs on RTL8211F-VD
         - support spread spectrum clocking (SSC)
      - Maxlinear:
         - add PHY-level statistics via ethtool

   - Ethernet switches:
      - Maxlinear (mxl862xx):
         - support for bridge offloading
         - support for VLANs
         - support driver statistics

   - Bluetooth:
      - large number of fixes and new device IDs
      - Mediatek:
         - support MT6639 (MT7927)
         - support MT7902 SDIO

   - WiFi:
      - Intel (iwlwifi):
         - UNII-9 and continuing UHR work
      - MediaTek (mt76):
         - mt7996/mt7925 MLO fixes/improvements
         - mt7996 NPU support (HW eth/wifi traffic offload)
      - Qualcomm (ath12k):
         - monitor mode support on IPQ5332
         - basic hwmon temperature reporting
         - support IPQ5424
      - Realtek:
         - add USB RX aggregation to improve performance
         - add USB TX flow control by tracking in-flight URBs

   - Cellular:
      - IPA v5.2 support"

* tag 'net-next-7.1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1561 commits)
  net: pse-pd: fix kernel-doc function name for pse_control_find_by_id()
  wireguard: device: use exit_rtnl callback instead of manual rtnl_lock in pre_exit
  wireguard: allowedips: remove redundant space
  tools: ynl: add sample for wireguard
  wireguard: allowedips: Use kfree_rcu() instead of call_rcu()
  MAINTAINERS: Add netkit selftest files
  selftests/net: Add additional test coverage in nk_qlease
  selftests/net: Split netdevsim tests from HW tests in nk_qlease
  tools/ynl: Make YnlFamily closeable as a context manager
  net: airoha: Add missing PPE configurations in airoha_ppe_hw_init()
  net: airoha: Fix VIP configuration for AN7583 SoC
  net: caif: clear client service pointer on teardown
  net: strparser: fix skb_head leak in strp_abort_strp()
  net: usb: cdc-phonet: fix skb frags[] overflow in rx_complete()
  selftests/bpf: add test for xdp_master_redirect with bond not up
  net, bpf: fix null-ptr-deref in xdp_master_redirect() for down master
  net: airoha: Remove PCE_MC_EN_MASK bit in REG_FE_PCE_CFG configuration
  sctp: disable BH before calling udp_tunnel_xmit_skb()
  sctp: fix missing encap_port propagation for GSO fragments
  net: airoha: Rely on net_device pointer in ETS callbacks
  ...

47 files changed:
1  2 
MAINTAINERS
arch/arm64/configs/defconfig
arch/loongarch/configs/loongson32_defconfig
arch/loongarch/configs/loongson64_defconfig
arch/m68k/configs/amiga_defconfig
arch/m68k/configs/apollo_defconfig
arch/m68k/configs/atari_defconfig
arch/m68k/configs/bvme6000_defconfig
arch/m68k/configs/hp300_defconfig
arch/m68k/configs/mac_defconfig
arch/m68k/configs/multi_defconfig
arch/m68k/configs/mvme147_defconfig
arch/m68k/configs/mvme16x_defconfig
arch/m68k/configs/q40_defconfig
arch/m68k/configs/sun3_defconfig
arch/m68k/configs/sun3x_defconfig
arch/s390/configs/debug_defconfig
arch/s390/configs/defconfig
crypto/Kconfig
crypto/Makefile
crypto/tcrypt.c
crypto/testmgr.c
crypto/testmgr.h
drivers/net/phy/mdio_bus_provider.c
include/linux/filter.h
include/linux/netdevice.h
include/net/sock.h
io_uring/zcrx.c
net/can/bcm.c
net/core/net-sysfs.c
net/core/net_namespace.c
net/ipv4/ping.c
net/ipv4/raw.c
net/ipv4/tcp_ipv4.c
net/ipv4/udp.c
net/ipv6/addrconf.c
net/ipv6/datagram.c
net/ipv6/tcp_ipv6.c
net/mac80211/wpa.c
net/netlink/af_netlink.c
net/packet/af_packet.c
net/socket.c
net/unix/af_unix.c
net/wireless/sysfs.c
net/xdp/xsk.c
security/smack/smack_lsm.c
tools/testing/selftests/Makefile

diff --cc MAINTAINERS
Simple merge
index b4458bee767a8d1b3b119c04df4c915daff35daa,8b23430484653e9b791d876230dfce96b8289bd2..570624e1d0ee254a5e22f21fb4153c9854c5e9be
@@@ -1914,11 -1914,10 +1914,10 @@@ CONFIG_CRYPTO_USER=
  CONFIG_CRYPTO_CHACHA20=m
  CONFIG_CRYPTO_BENCHMARK=m
  CONFIG_CRYPTO_ECHAINIV=y
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_SHA3=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_USER_API_RNG=m
  CONFIG_CRYPTO_GHASH_ARM64_CE=y
 -CONFIG_CRYPTO_SM3_ARM64_CE=m
  CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
  CONFIG_CRYPTO_AES_ARM64_BS=m
  CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
index 03a8c192a7a39553088bc0880769e8cc2a9ee313,510e16f25318222e1d5f873a84298515f54ba2d3..0f85975abc63e64c996cc541084c0f02719b9347
@@@ -578,10 -538,9 +538,9 @@@ CONFIG_CRYPTO_PCBC=
  CONFIG_CRYPTO_XTS=m
  CONFIG_CRYPTO_AEGIS128=m
  CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA1=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_LZO=m
index 0aee1939ac7a4ac825c6595e9e6afff47811e0c8,d1d8f02b4d968e6caabd18a3f27c83083100545f..ca08b130945aefb4f96604469ab6d97276cc312c
@@@ -535,10 -495,9 +495,9 @@@ CONFIG_CRYPTO_PCBC=
  CONFIG_CRYPTO_XTS=m
  CONFIG_CRYPTO_AEGIS128=m
  CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA1=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_LZO=m
index 756256770afc6b198532c3ed7ce9d14f221f5bfd,2e207af4add24c68b80de829c337dce2e29af0dc..a80b5517c2423d8ad01451b0ebb9b4c7e6c32b83
@@@ -555,10 -515,9 +515,9 @@@ CONFIG_CRYPTO_PCBC=
  CONFIG_CRYPTO_XTS=m
  CONFIG_CRYPTO_AEGIS128=m
  CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA1=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_LZO=m
index 8cfb75bb0add37966ce447115f6871225ac1d2c9,d7546528989845b3e32a99418a0911e409b5f207..d4f3f94b61ff34d4e2c9acd949276a0465e86507
@@@ -527,10 -487,9 +487,9 @@@ CONFIG_CRYPTO_PCBC=
  CONFIG_CRYPTO_XTS=m
  CONFIG_CRYPTO_AEGIS128=m
  CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA1=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_LZO=m
index b2f5c9749e9b80a3da61888471549419f80abb23,c2011a749e108b377d4f17039609b88645a35b53..7a54b00082dd14af41941f5dc64c1858ac2ff442
@@@ -537,10 -497,9 +497,9 @@@ CONFIG_CRYPTO_PCBC=
  CONFIG_CRYPTO_XTS=m
  CONFIG_CRYPTO_AEGIS128=m
  CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA1=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_LZO=m
index c4fddaaa6a867f5c34073cf09a49a4bfd5e84607,e377443c56d4190a0bd8baa7d95c9a8e553b5909..6916f55c7c9c3f1c138a76a9fd5ca426d7ab2c67
@@@ -554,10 -514,9 +514,9 @@@ CONFIG_CRYPTO_PCBC=
  CONFIG_CRYPTO_XTS=m
  CONFIG_CRYPTO_AEGIS128=m
  CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA1=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_LZO=m
index 926f12bc3d1d23a7ae8ebe071b06a530484e9116,cdd0449f714137f673990017f699e6920b8aac7b..bd08f46762f413b8edb2547d452aa46ab474f3ca
@@@ -641,10 -601,9 +601,9 @@@ CONFIG_CRYPTO_PCBC=
  CONFIG_CRYPTO_XTS=m
  CONFIG_CRYPTO_AEGIS128=m
  CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA1=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_LZO=m
index e507012dbbc1843f2a68d65c0cc1617c2ce97bd5,4e78ff8d793e8f7a2934830e2781c72c8e3bfc0c..176540bd5074119bfcebb629653cf04eec3d464b
@@@ -527,10 -487,9 +487,9 @@@ CONFIG_CRYPTO_PCBC=
  CONFIG_CRYPTO_XTS=m
  CONFIG_CRYPTO_AEGIS128=m
  CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA1=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_LZO=m
index 6195cedd914b7ed1828f1aab61f9454054bbf715,9fc30a3236e183251934b4ba6c01f474eab51b20..8b2e5cf4d2f21d84499e3b11a702e340f713eb5f
@@@ -528,10 -488,9 +488,9 @@@ CONFIG_CRYPTO_PCBC=
  CONFIG_CRYPTO_XTS=m
  CONFIG_CRYPTO_AEGIS128=m
  CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA1=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_LZO=m
index 9087bd9e3c35b01579a905ec31e0f277291525a4,c3b5fdabfe1604582293d4ea8ab150b5cf16ad3e..693fcc7fa8fb2f1d3f81cb93982e7401c7176dfb
@@@ -544,10 -504,9 +504,9 @@@ CONFIG_CRYPTO_PCBC=
  CONFIG_CRYPTO_XTS=m
  CONFIG_CRYPTO_AEGIS128=m
  CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA1=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_LZO=m
index 25115bda7c8a2ca7353e3cbc0bea090d814c6c4e,ea40f990eb22abad7b09354d6f7b0d8d9cd653f4..0b96428f25d4029c1d94f29c313ee6d5490567a1
@@@ -525,10 -485,9 +485,9 @@@ CONFIG_CRYPTO_PCBC=
  CONFIG_CRYPTO_XTS=m
  CONFIG_CRYPTO_AEGIS128=m
  CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA1=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_LZO=m
index 15a086634ba50f1d1983190b44be720cd133ca96,e20b6a9d26cdfa9e4f9750739efcc04075051995..6140e18244a169734e61ca8e59207aad9a0ec3e4
@@@ -525,10 -485,9 +485,9 @@@ CONFIG_CRYPTO_PCBC=
  CONFIG_CRYPTO_XTS=m
  CONFIG_CRYPTO_AEGIS128=m
  CONFIG_CRYPTO_MD4=m
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA1=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_LZO=m
index f8fcc29adbd3dcea7e11220a6a124be7bec9d639,d9f0eccb05dd3e069e5c7dbb8e7a84598dd9020b..2ad83fab2b45fe772b0776ebd4bc7e4b44013337
@@@ -794,10 -793,9 +793,9 @@@ CONFIG_CRYPTO_GCM=
  CONFIG_CRYPTO_SEQIV=y
  CONFIG_CRYPTO_MD4=m
  CONFIG_CRYPTO_MD5=y
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA3=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_CRC32=m
index 3c6ccc0de0188912e9e46942a7965b18a25815e4,033bf4502690b0a136b623aa1db24255ac7cf433..5e3e2fe31b6b57271960dbbeaaaef497847b30f1
@@@ -778,10 -777,9 +777,9 @@@ CONFIG_CRYPTO_GCM=
  CONFIG_CRYPTO_SEQIV=y
  CONFIG_CRYPTO_MD4=m
  CONFIG_CRYPTO_MD5=y
- CONFIG_CRYPTO_MICHAEL_MIC=m
  CONFIG_CRYPTO_RMD160=m
  CONFIG_CRYPTO_SHA3=m
 -CONFIG_CRYPTO_SM3_GENERIC=m
 +CONFIG_CRYPTO_SM3=m
  CONFIG_CRYPTO_WP512=m
  CONFIG_CRYPTO_XCBC=m
  CONFIG_CRYPTO_CRC32=m
diff --cc crypto/Kconfig
Simple merge
diff --cc crypto/Makefile
Simple merge
diff --cc crypto/tcrypt.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc io_uring/zcrx.c
index bd970fb084c19af7c13a87651f26d5031c2f9419,f4a7809ba0c2b14c43dd8c545451d4c069961a9a..9a83d7eb4210e292be210e7a9eb463c607a815a7
@@@ -779,50 -754,10 +782,50 @@@ err
        return ret;
  }
  
 -int io_register_zcrx_ifq(struct io_ring_ctx *ctx,
 -                        struct io_uring_zcrx_ifq_reg __user *arg)
 +static int zcrx_register_netdev(struct io_zcrx_ifq *ifq,
 +                              struct io_uring_zcrx_ifq_reg *reg,
 +                              struct io_uring_zcrx_area_reg *area)
  {
        struct pp_memory_provider_params mp_param = {};
-       ifq->dev = netdev_queue_get_dma_dev(ifq->netdev, if_rxq);
 +      unsigned if_rxq = reg->if_rxq;
 +      int ret;
 +
 +      ifq->netdev = netdev_get_by_index_lock(current->nsproxy->net_ns,
 +                                              reg->if_idx);
 +      if (!ifq->netdev)
 +              return -ENODEV;
 +
 +      netdev_hold(ifq->netdev, &ifq->netdev_tracker, GFP_KERNEL);
 +
-       ret = __net_mp_open_rxq(ifq->netdev, if_rxq, &mp_param, NULL);
++      ifq->dev = netdev_queue_get_dma_dev(ifq->netdev, if_rxq, NETDEV_QUEUE_TYPE_RX);
 +      if (!ifq->dev) {
 +              ret = -EOPNOTSUPP;
 +              goto netdev_put_unlock;
 +      }
 +      get_device(ifq->dev);
 +
 +      ret = io_zcrx_create_area(ifq, area, reg);
 +      if (ret)
 +              goto netdev_put_unlock;
 +
 +      if (reg->rx_buf_len)
 +              mp_param.rx_page_size = 1U << ifq->niov_shift;
 +      mp_param.mp_ops = &io_uring_pp_zc_ops;
 +      mp_param.mp_priv = ifq;
++      ret = netif_mp_open_rxq(ifq->netdev, if_rxq, &mp_param, NULL);
 +      if (ret)
 +              goto netdev_put_unlock;
 +
 +      ifq->if_rxq = if_rxq;
 +      ret = 0;
 +netdev_put_unlock:
 +      netdev_unlock(ifq->netdev);
 +      return ret;
 +}
 +
 +int io_register_zcrx(struct io_ring_ctx *ctx,
 +                   struct io_uring_zcrx_ifq_reg __user *arg)
 +{
        struct io_uring_zcrx_area_reg area;
        struct io_uring_zcrx_ifq_reg reg;
        struct io_uring_region_desc rd;
diff --cc net/can/bcm.c
Simple merge
Simple merge
Simple merge
diff --cc net/ipv4/ping.c
Simple merge
diff --cc net/ipv4/raw.c
Simple merge
Simple merge
diff --cc net/ipv4/udp.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc net/socket.c
Simple merge
Simple merge
Simple merge
diff --cc net/xdp/xsk.c
Simple merge
Simple merge
Simple merge