Linux/linux 8bf22c3drivers/net/ethernet/mellanox/mlx5/core en_main.c, drivers/net/ethernet/mscc ocelot_net.c

Merge tag 'net-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

Pull networking fixes from Jakub Kicinski:
 "Including fixes from Netfilter.

  Current release - new code bugs:

   - net: fix backlog_unlock_irq_restore() vs CONFIG_PREEMPT_RT

   - eth: mlx5e: XSK, Fix unintended ICOSQ change

   - phy_port: correctly recompute the port's linkmodes

   - vsock: prevent child netns mode switch from local to global

   - couple of kconfig fixes for new symbols

  Previous releases - regressions:


    [38 lines not shown]
DeltaFile
+43-206net/netfilter/nf_tables_api.c
+141-18net/nfc/nci/ntf.c
+88-2tools/testing/selftests/net/forwarding/bridge_mdb_max.sh
+63-26drivers/net/ethernet/mscc/ocelot_net.c
+17-47drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+35-22drivers/net/ovpn/io.c
+387-32197 files not shown
+1,140-694103 files

Linux/linux 4f13d0darch/riscv/net bpf_jit_comp64.c, kernel/bpf verifier.c

Merge tag 'bpf-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf

Pull bpf fixes from Alexei Starovoitov:

 - Fix invalid write loop logic in libbpf's bpf_linker__add_buf() (Amery
   Hung)

 - Fix a potential use-after-free of BTF object (Anton Protopopov)

 - Add feature detection to libbpf and avoid moving arena global
   variables on older kernels (Emil Tsalapatis)

 - Remove extern declaration of bpf_stream_vprintk() from libbpf headers
   (Ihor Solodrai)

 - Fix truncated netlink dumps in bpftool (Jakub Kicinski)

 - Fix map_kptr grace period wait in bpf selftests (Kumar Kartikeya
   Dwivedi)

    [22 lines not shown]
DeltaFile
+77-20arch/riscv/net/bpf_jit_comp64.c
+65-0tools/lib/bpf/features.c
+25-23kernel/bpf/verifier.c
+4-26tools/testing/selftests/bpf/progs/rcu_tasks_trace_gp.c
+28-0tools/testing/selftests/bpf/test_kmods/bpf_testmod.c
+13-4tools/lib/bpf/libbpf.c
+212-7313 files not shown
+242-10119 files

Linux/linux 571dcbenet/nfc/nci ntf.c

net: nfc: nci: Fix parameter validation for packet data

Since commit 9c328f54741b ("net: nfc: nci: Add parameter validation for
packet data") communication with nci nfc chips is not working any more.

The mentioned commit tries to fix access of uninitialized data, but
failed to understand that in some cases the data packet is of variable
length and can therefore not be compared to the maximum packet length
given by the sizeof(struct).

Fixes: 9c328f54741b ("net: nfc: nci: Add parameter validation for packet data")
Cc: stable at vger.kernel.org
Signed-off-by: Michael Thalmeier <michael.thalmeier at hale.at>
Reported-by: syzbot+740e04c2a93467a0f8c8 at syzkaller.appspotmail.com
Link: https://patch.msgid.link/20260218083000.301354-1-michael.thalmeier@hale.at
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+141-18net/nfc/nci/ntf.c
+141-181 files

Linux/linux 7997bcadrivers/net/ethernet/mellanox/mlx5/core en_main.c wc.c, drivers/net/ethernet/mellanox/mlx5/core/en reporter_tx.c ptp.c

Merge branch 'mlx5-misc-fixes-2026-02-18'

Tariq Toukan says:

====================
mlx5 misc fixes 2026-02-18

This patchset provides misc bug fixes from the team to the mlx5
core and Eth drivers.
====================

Link: https://patch.msgid.link/20260218072904.1764634-1-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+48-4drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
+0-40drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+5-9drivers/net/ethernet/mellanox/mlx5/core/wc.c
+0-14drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
+5-8drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
+13-0drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c
+71-753 files not shown
+78-859 files

Linux/linux 57a94d4drivers/net/ethernet/mellanox/mlx5/core en.h

net/mlx5e: Use unsigned for mlx5e_get_max_num_channels

The max number of channels is always an unsigned int, use the correct
type to fix compilation errors done with strict type checking, e.g.:

error: call to ‘__compiletime_assert_1110’ declared with attribute
  error: min(mlx5e_get_devlink_param_num_doorbells(mdev),
  mlx5e_get_max_num_channels(mdev)) signedness error

Fixes: 74a8dadac17e ("net/mlx5e: Preparations for supporting larger number of channels")
Signed-off-by: Cosmin Ratiu <cratiu at nvidia.com>
Reviewed-by: Dragos Tatulea <dtatulea at nvidia.com>
Signed-off-by: Tariq Toukan <tariqt at nvidia.com>
Reviewed-by: Jacob Keller <Jacob.e.keller at intel.com>
Link: https://patch.msgid.link/20260218072904.1764634-7-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+2-1drivers/net/ethernet/mellanox/mlx5/core/en.h
+2-11 files

Linux/linux 83ac030drivers/net/ethernet/mellanox/mlx5/core en_main.c, drivers/net/ethernet/mellanox/mlx5/core/en reporter_tx.c ptp.c

net/mlx5e: Fix deadlocks between devlink and netdev instance locks

In the mentioned "Fixes" commit, various work tasks triggering devlink
health reporter recovery were switched to use netdev_trylock to protect
against concurrent tear down of the channels being recovered. But this
had the side effect of introducing potential deadlocks because of
incorrect lock ordering.

The correct lock order is described by the init flow:
probe_one -> mlx5_init_one (acquires devlink lock)
-> mlx5_init_one_devl_locked -> mlx5_register_device
-> mlx5_rescan_drivers_locked -...-> mlx5e_probe -> _mlx5e_probe
-> register_netdev (acquires rtnl lock)
-> register_netdevice (acquires netdev lock)
=> devlink lock -> rtnl lock -> netdev lock.

But in the current recovery flow, the order is wrong:
mlx5e_tx_err_cqe_work (acquires netdev lock)
-> mlx5e_reporter_tx_err_cqe -> mlx5e_health_report

    [21 lines not shown]
DeltaFile
+48-4drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
+0-40drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+0-14drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c
+13-0drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c
+61-584 files

Linux/linux 9854b24drivers/net/ethernet/mellanox/mlx5/core/en_accel macsec.c

net/mlx5e: MACsec, add ASO poll loop in macsec_aso_set_arm_event

The macsec_aso_set_arm_event function calls mlx5_aso_poll_cq once
without a retry loop. If the CQE is not immediately available after
posting the WQE, the function fails unnecessarily.

Use read_poll_timeout() to poll 3-10 usecs for CQE, consistent with
other ASO polling code paths in the driver.

Fixes: 739cfa34518e ("net/mlx5: Make ASO poll CQ usable in atomic context")
Signed-off-by: Gal Pressman <gal at nvidia.com>
Reviewed-by: Jianbo Liu <jianbol at nvidia.com>
Signed-off-by: Tariq Toukan <tariqt at nvidia.com>
Reviewed-by: Jacob Keller <Jacob.e.keller at intel.com>
Link: https://patch.msgid.link/20260218072904.1764634-5-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+2-1drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
+2-11 files

Linux/linux d451994drivers/net/ethernet/mellanox/mlx5/core wc.c

net/mlx5: Fix misidentification of write combining CQE during poll loop

The write combining completion poll loop uses usleep_range() which can
sleep much longer than requested due to scheduler latency. Under load,
we witnessed a 20ms+ delay until the process was rescheduled, causing
the jiffies based timeout to expire while the thread is sleeping.

The original do-while loop structure (poll, sleep, check timeout) would
exit without a final poll when waking after timeout, missing a CQE that
arrived during sleep.

Instead of the open-coded while loop, use the kernel's poll_timeout_us()
which always performs an additional check after the sleep expiration,
and is less error-prone.

Note: poll_timeout_us() doesn't accept a sleep range, by passing 10
sleep_us the sleep range effectively changes from 2-10 to 3-10 usecs.

Fixes: d98995b4bf98 ("net/mlx5: Reimplement write combining test")

    [6 lines not shown]
DeltaFile
+5-9drivers/net/ethernet/mellanox/mlx5/core/wc.c
+5-91 files

Linux/linux ae3cb71drivers/net/ethernet/mellanox/mlx5/core/en/tc meter.c, drivers/net/ethernet/mellanox/mlx5/core/en_accel macsec.c

net/mlx5e: Fix misidentification of ASO CQE during poll loop

The ASO completion poll loop uses usleep_range() which can sleep much
longer than requested due to scheduler latency. Under load, we witnessed
a 20ms+ delay until the process was rescheduled, causing the jiffies
based timeout to expire while the thread is sleeping.

The original do-while loop structure (poll, sleep, check timeout) would
exit without a final poll when waking after timeout, missing a CQE that
arrived during sleep.

Instead of the open-coded while loop, use the kernel's
read_poll_timeout() which always performs an additional check after the
sleep expiration, and is less error-prone.

Note: read_poll_timeout() doesn't accept a sleep range, by passing 10
sleep_us the sleep range effectively changes from 2-10 to 3-10 usecs.

Fixes: 739cfa34518e ("net/mlx5: Make ASO poll CQ usable in atomic context")

    [7 lines not shown]
DeltaFile
+3-7drivers/net/ethernet/mellanox/mlx5/core/en/tc/meter.c
+3-7drivers/net/ethernet/mellanox/mlx5/core/en_accel/macsec.c
+6-142 files

Linux/linux 47bf2e8include/linux/mlx5 driver.h

net/mlx5: Fix multiport device check over light SFs

Driver is using num_vhca_ports capability to distinguish between
multiport master device and multiport slave device. num_vhca_ports is a
capability the driver sets according to the MAX num_vhca_ports
capability reported by FW. On the other hand, light SFs doesn't set the
above capbility.

This leads to wrong results whenever light SFs is checking whether he is
a multiport master or slave.

Therefore, use the MAX capability to distinguish between master and
slave devices.

Fixes: e71383fb9cd1 ("net/mlx5: Light probe local SFs")
Signed-off-by: Shay Drory <shayd at nvidia.com>
Reviewed-by: Moshe Shemesh <moshe at nvidia.com>
Signed-off-by: Tariq Toukan <tariqt at nvidia.com>
Reviewed-by: Jacob Keller <Jacob.e.keller at intel.com>

    [2 lines not shown]
DeltaFile
+2-2include/linux/mlx5/driver.h
+2-21 files

Linux/linux e6834a4drivers/net/bonding bond_main.c

bonding: alb: fix UAF in rlb_arp_recv during bond up/down

The ALB RX path may access rx_hashtbl concurrently with bond
teardown. During rapid bond up/down cycles, rlb_deinitialize()
frees rx_hashtbl while RX handlers are still running, leading
to a null pointer dereference detected by KASAN.

However, the root cause is that rlb_arp_recv() can still be accessed
after setting recv_probe to NULL, which is actually a use-after-free
(UAF) issue. That is the reason for using the referenced commit in the
Fixes tag.

[  214.174138] Oops: general protection fault, probably for non-canonical address 0xdffffc000000001d: 0000 [#1] SMP KASAN PTI
[  214.186478] KASAN: null-ptr-deref in range [0x00000000000000e8-0x00000000000000ef]
[  214.194933] CPU: 30 UID: 0 PID: 2375 Comm: ping Kdump: loaded Not tainted 6.19.0-rc8+ #2 PREEMPT(voluntary)
[  214.205907] Hardware name: Dell Inc. PowerEdge R730/0WCJNT, BIOS 2.14.0 01/14/2022
[  214.214357] RIP: 0010:rlb_arp_recv+0x505/0xab0 [bonding]
[  214.220320] Code: 0f 85 2b 05 00 00 48 b8 00 00 00 00 00 fc ff df 40 0f b6 ed 48 c1 e5 06 49 03 ad 78 01 00 00 48 8d 7d 28 48 89 fa 48 c1 ea 03 <0f> b6
 04 02 84 c0 74 06 0f 8e 12 05 00 00 80 7d 28 00 0f 84 8c 00

    [55 lines not shown]
DeltaFile
+5-1drivers/net/bonding/bond_main.c
+5-11 files

Linux/linux 6045300drivers/net/ethernet/broadcom/bnge bnge_hwrm_lib.c

bnge: fix reserving resources from FW

HWRM_FUNC_CFG is used to reserve resources, whereas HWRM_FUNC_QCFG is
intended for querying resource information from the firmware.
Since __bnge_hwrm_reserve_pf_rings() reserves resources for a specific
PF, the command type should be HWRM_FUNC_CFG.

Fixes: 627c67f038d2 ("bng_en: Add resource management support")
Signed-off-by: Vikas Gupta <vikas.gupta at broadcom.com>
Reviewed-by: Bhargava Chenna Marreddy <bhargava.marreddy at broadcom.com>
Reviewed-by: Simon Horman <horms at kernel.org>
Link: https://patch.msgid.link/20260218052755.4097468-1-vikas.gupta@broadcom.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+1-1drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c
+1-11 files

Linux/linux e977fcbdrivers/net/ethernet/meta/fbnic fbnic_netdev.c

eth: fbnic: Advertise supported XDP features.

Drivers are supposed to advertise the XDP features they support. This was
missed while adding XDP support.

Before:
$ ynl --family netdev --dump dev-get
...
 {'ifindex': 3,
  'xdp-features': set(),
  'xdp-rx-metadata-features': set(),
  'xsk-features': set()},
...

After:
$ ynl --family netdev --dump dev-get
...
 {'ifindex': 3,
  'xdp-features': {'basic', 'rx-sg'},

    [10 lines not shown]
DeltaFile
+2-0drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
+2-01 files

Linux/linux 7b821danet/rds tcp.c

rds: tcp: fix uninit-value in __inet_bind

KMSAN reported an uninit-value access in __inet_bind() when binding
an RDS TCP socket.

The uninitialized memory originates from rds_tcp_conn_alloc(),
which uses kmem_cache_alloc() to allocate the rds_tcp_connection structure.

Specifically, the field 't_client_port_group' is incremented in
rds_tcp_conn_path_connect() without being initialized first:

    if (++tc->t_client_port_group >= port_groups)

Since kmem_cache_alloc() does not zero the memory, this field contains
garbage, leading to the KMSAN report.

Fix this by using kmem_cache_zalloc() to ensure the structure is
zero-initialized upon allocation.


    [11 lines not shown]
DeltaFile
+1-1net/rds/tcp.c
+1-11 files

Linux/linux 6bf4570net/rds tcp_listen.c

net/rds: Fix NULL pointer dereference in rds_tcp_accept_one

Save a local pointer to new_sock->sk and hold a reference before
installing callbacks in rds_tcp_accept_one. After
rds_tcp_set_callbacks() or rds_tcp_reset_callbacks(), tc->t_sock is
set to new_sock which may race with the shutdown path.  A concurrent
rds_tcp_conn_path_shutdown() may call sock_release(), which sets
new_sock->sk = NULL and may eventually free sk when the refcount
reaches zero.

Subsequent accesses to new_sock->sk->sk_state would dereference NULL,
causing the crash. The fix saves a local sk pointer before callbacks
are installed so that sk_state can be accessed safely even after
new_sock->sk is nulled, and uses sock_hold()/sock_put() to ensure
sk itself remains valid for the duration.

Fixes: 826c1004d4ae ("net/rds: rds_tcp_conn_path_shutdown must not discard messages")
Reported-by: syzbot+96046021045ffe6d7709 at syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=96046021045ffe6d7709

    [4 lines not shown]
DeltaFile
+17-3net/rds/tcp_listen.c
+17-31 files

Linux/linux 2b7a25dkernel/liveupdate kexec_handover.c, lib group_cpus.c

Merge tag 'mm-nonmm-stable-2026-02-18-19-56' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

Pull more non-MM updates from Andrew Morton:

 - "two fixes in kho_populate()" fixes a couple of not-major issues in
   the kexec handover code (Ran Xiaokai)

 - misc singletons

* tag 'mm-nonmm-stable-2026-02-18-19-56' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
  lib/group_cpus: handle const qualifier from clusters allocation type
  kho: remove unnecessary WARN_ON(err) in kho_populate()
  kho: fix missing early_memunmap() call in kho_populate()
  scripts/gdb: implement x86_page_ops in mm.py
  objpool: fix the overestimation of object pooling metadata size
  selftests/memfd: use IPC semaphore instead of SIGSTOP/SIGCONT
  delayacct: fix build regression on accounting tool
DeltaFile
+172-1scripts/gdb/linux/mm.py
+105-8tools/testing/selftests/memfd/memfd_test.c
+15-13kernel/liveupdate/kexec_handover.c
+6-6tools/accounting/getdelays.c
+1-1scripts/gdb/linux/constants.py.in
+1-1lib/group_cpus.c
+300-301 files not shown
+301-317 files

Linux/linux eeccf28tools/testing/selftests/mm memory-failure.c, tools/testing/vma vma_internal.h vma.c

Merge tag 'mm-stable-2026-02-18-19-48' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

Pull more MM  updates from Andrew Morton:

 - "mm/vmscan: fix demotion targets checks in reclaim/demotion" fixes a
   couple of issues in the demotion code - pages were failed demotion
   and were finding themselves demoted into disallowed nodes (Bing Jiao)

 - "Remove XA_ZERO from error recovery of dup_mmap()" fixes a rare
   mapledtree race and performs a number of cleanups (Liam Howlett)

 - "mm: add bitmap VMA flag helpers and convert all mmap_prepare to use
   them" implements a lot of cleanups following on from the conversion
   of the VMA flags into a bitmap (Lorenzo Stoakes)

 - "support batch checking of references and unmapping for large folios"
   implements batching to greatly improve the performance of reclaiming
   clean file-backed large folios (Baolin Wang)


    [25 lines not shown]
DeltaFile
+19-1,828tools/testing/vma/vma_internal.h
+0-1,785tools/testing/vma/vma.c
+1,469-0tools/testing/vma/tests/merge.c
+1,320-0tools/testing/vma/include/dup.h
+428-0tools/testing/vma/include/stubs.h
+359-0tools/testing/selftests/mm/memory-failure.c
+3,595-3,61377 files not shown
+5,401-3,98183 files

Linux/linux 45be47bdrivers/net/ethernet/marvell/octeontx2/af rvu_npc.c

octeontx2-af: Fix default entries mcam entry action

As per design, AF should update the default MCAM action only when
mcam_index is -1. A bug in the previous patch caused default entries
to be changed even when the request was not for them.

Fixes: 570ba37898ec ("octeontx2-af: Update RSS algorithm index")
Signed-off-by: Hariprasad Kelam <hkelam at marvell.com>
Reviewed-by: Simon Horman <horms at kernel.org>
Link: https://patch.msgid.link/20260216090338.1318976-1-hkelam@marvell.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+22-19drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
+22-191 files

Linux/linux 284f1f1net/netfilter nf_tables_api.c nft_counter.c, net/netfilter/ipvs ip_vs_xmit.c ip_vs_proto_tcp.c

Merge tag 'nf-26-02-17' of https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf

Florian Westphal says:

====================
netfilter: updates for net

The following patchset contains Netfilter fixes for *net*:

1) Add missing __rcu annotations to NAT helper hook pointers in Amanda,
   FTP, IRC, SNMP and TFTP helpers.  From Sun Jian.

2-4):
 - Add global spinlock to serialize nft_counter fetch+reset operations.
 - Use atomic64_xchg() for nft_quota reset instead of read+subtract pattern.
   Note AI review detects a race in this change but it isn't new. The
   'racing' bit only exists to prevent constant stream of 'quota expired'
   notifications.
 - Revert commit_mutex usage in nf_tables reset path, it caused

    [34 lines not shown]
DeltaFile
+43-206net/netfilter/nf_tables_api.c
+36-10net/netfilter/ipvs/ip_vs_xmit.c
+7-14net/netfilter/ipvs/ip_vs_proto_tcp.c
+16-4net/netfilter/nft_counter.c
+7-13net/netfilter/ipvs/ip_vs_proto_udp.c
+6-12net/netfilter/ipvs/ip_vs_proto_sctp.c
+115-25914 files not shown
+166-30320 files

Linux/linux 0da1dbadrivers/net/ethernet/mellanox/mlx5/core en_main.c en.h, drivers/net/ethernet/mellanox/mlx5/core/en/xsk pool.c tx.c

net/mlx5e: XSK, Fix unintended ICOSQ change

XSK wakeup must use the async ICOSQ (with proper locking), as it is not
guaranteed to run on the same CPU as the channel.

The commit that converted the NAPI trigger path to use the sync ICOSQ
incorrectly applied the same change to XSK, causing XSK wakeups to use
the sync ICOSQ as well. Revert XSK flows to use the async ICOSQ.

XDP program attach/detach triggers channel reopen, while XSK pool
enable/disable can happen on-the-fly via NDOs without reopening
channels. As a result, xsk_pool state cannot be reliably used at
mlx5e_open_channel() time to decide whether an async ICOSQ is needed.

Update the async_icosq_needed logic to depend on the presence of an XDP
program rather than the xsk_pool, ensuring the async ICOSQ is available
when XSK wakeups are enabled.

This fixes multiple issues:

    [25 lines not shown]
DeltaFile
+17-7drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+2-2drivers/net/ethernet/mellanox/mlx5/core/en/xsk/pool.c
+1-1drivers/net/ethernet/mellanox/mlx5/core/en/xsk/tx.c
+1-0drivers/net/ethernet/mellanox/mlx5/core/en.h
+21-104 files

Linux/linux b1216f1Documentation/networking ip-sysctl.rst, include/net/netns ipv4.h

Merge branch 'icmp-better-deal-with-ddos'

Eric Dumazet says:

====================
icmp: better deal with DDOS

When dealing with death of big UDP servers, admins might want to
increase net.ipv4.icmp_msgs_per_sec and net.ipv4.icmp_msgs_burst
to big values (2,000,000 or more).

They also might need to tune the per-host ratelimit to 1ms or 0ms
in favor of the global rate limit.

This series fixes bugs showing up in all these needs.
====================

Link: https://patch.msgid.link/20260216142832.3834174-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+12-5net/ipv4/icmp.c
+7-8net/ipv6/icmp.c
+7-2include/net/netns/ipv4.h
+4-3Documentation/networking/ip-sysctl.rst
+1-1net/ipv6/af_inet6.c
+31-195 files

Linux/linux 9395b1bnet/ipv6 icmp.c

ipv6: icmp: icmpv6_xrlim_allow() optimization if net.ipv6.icmp.ratelimit is zero

If net.ipv6.icmp.ratelimit is zero we do not have to call
inet_getpeer_v6() and inet_peer_xrlim_allow().

Both can be very expensive under DDOS.

Signed-off-by: Eric Dumazet <edumazet at google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu at google.com>
Link: https://patch.msgid.link/20260216142832.3834174-6-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+6-2net/ipv6/icmp.c
+6-21 files

Linux/linux 87b0891include/net/netns ipv4.h

inet: move icmp_global_{credit,stamp} to a separate cache line

icmp_global_credit was meant to be changed ~1000 times per second,
but if an admin sets net.ipv4.icmp_msgs_per_sec to a very high value,
icmp_global_credit changes can inflict false sharing to surrounding
fields that are read mostly.

Move icmp_global_credit and icmp_global_stamp to a separate
cacheline aligned group.

Fixes: b056b4cd9178 ("icmp: move icmp_global.credit and icmp_global.stamp to per netns storage")
Signed-off-by: Eric Dumazet <edumazet at google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu at google.com>
Link: https://patch.msgid.link/20260216142832.3834174-3-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+7-2include/net/netns/ipv4.h
+7-21 files

Linux/linux 0201eedDocumentation/networking ip-sysctl.rst, net/ipv6 icmp.c af_inet6.c

ipv6: icmp: remove obsolete code in icmpv6_xrlim_allow()

Following part was needed before the blamed commit, because
inet_getpeer_v6() second argument was the prefix.

        /* Give more bandwidth to wider prefixes. */
        if (rt->rt6i_dst.plen < 128)
                tmo >>= ((128 - rt->rt6i_dst.plen)>>5);

Now inet_getpeer_v6() retrieves hosts, we need to remove
@tmo adjustement or wider prefixes likes /24 allow 8x
more ICMP to be sent for a given ratelimit.

As we had this issue for a while, this patch changes net.ipv6.icmp.ratelimit
default value from 1000ms to 100ms to avoid potential regressions.

Also add a READ_ONCE() when reading net->ipv6.sysctl.icmpv6_time.

Fixes: fd0273d7939f ("ipv6: Remove external dependency on rt6i_dst and rt6i_src")

    [5 lines not shown]
DeltaFile
+4-3Documentation/networking/ip-sysctl.rst
+1-6net/ipv6/icmp.c
+1-1net/ipv6/af_inet6.c
+6-103 files

Linux/linux d8d9ef2net/ipv4 icmp.c

ipv4: icmp: icmpv4_xrlim_allow() optimization if net.ipv4.icmp_ratelimit is zero

If net.ipv4.icmp_ratelimit is zero, we do not have to call
inet_getpeer_v4() and inet_peer_xrlim_allow().

Both can be very expensive under DDOS.

Signed-off-by: Eric Dumazet <edumazet at google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu at google.com>
Link: https://patch.msgid.link/20260216142832.3834174-5-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+10-4net/ipv4/icmp.c
+10-41 files

Linux/linux 034bbd8net/ipv4 icmp.c

icmp: prevent possible overflow in icmp_global_allow()

Following expression can overflow
if sysctl_icmp_msgs_per_sec is big enough.

sysctl_icmp_msgs_per_sec * delta / HZ;

Fixes: 4cdf507d5452 ("icmp: add a global rate limitation")
Signed-off-by: Eric Dumazet <edumazet at google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu at google.com>
Link: https://patch.msgid.link/20260216142832.3834174-2-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+2-1net/ipv4/icmp.c
+2-11 files

Linux/linux 570e454tools/testing/selftests/net/packetdrill ksft_runner.sh

selftests/net: packetdrill: add ipv4-mapped-ipv6 tests

Add ipv4-mapped-ipv6 case to ksft_runner.sh before
an upcoming TCP fix in this area.

Signed-off-by: Eric Dumazet <edumazet at google.com>
Reviewed-by: Willem de Bruijn <willemb at google.com>
Link: https://patch.msgid.link/20260217142924.1853498-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+10-1tools/testing/selftests/net/packetdrill/ksft_runner.sh
+10-11 files

Linux/linux 1e5c009tools/testing/selftests/bpf Makefile

selftests/bpf: Remove hexdump dependency

The verification signature header generation requires converting a
binary certificate to a C array. Previously this only worked with xxd,
and a switch to hexdump has been done in commit b640d556a2b3
("selftests/bpf: Remove xxd util dependency").

hexdump is a more common utility program, yet it might not be installed
by default. When it is not installed, BPF selftests build without
errors, but tests_progs is unusable: it exits with the 255 code and
without any error messages. When manually reproducing the issue, it is
not too hard to find out that the generated verification_cert.h file is
incorrect, but that's time consuming. When digging the BPF selftests
build logs, this line can be seen amongst thousands others, but ignored:

  /bin/sh: 2: hexdump: not found

Here, od is used instead of hexdump. od is coming from the coreutils
package, and this new od command produces the same output when using od

    [11 lines not shown]
DeltaFile
+1-1tools/testing/selftests/bpf/Makefile
+1-11 files

Linux/linux 956b9cb. Makefile, scripts make_fit.py cc-can-link.sh

Merge tag 'kbuild-fixes-7.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux

Pull Kbuild fixes from Nathan Chancellor:

 - Ensure tools/objtool is cleaned by 'make clean' and 'make mrproper'

 - Fix test program for CONFIG_CC_CAN_LINK to avoid a warning, which is
   made fatal by -Werror

 - Drop explicit LZMA parallel compression in scripts/make_fit.py

 - Several fixes for commit 62089b804895 ("kbuild: rpm-pkg: Generate
   debuginfo package manually")

* tag 'kbuild-fixes-7.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux:
  kbuild: rpm-pkg: Disable automatic requires for manual debuginfo package
  kbuild: rpm-pkg: Fix manual debuginfo generation when using .src.rpm
  kernel: rpm-pkg: Restore find-debuginfo.sh approach to -debuginfo package
  kbuild: rpm-pkg: Restrict manual debug package creation

    [3 lines not shown]
DeltaFile
+55-9scripts/package/kernel.spec
+35-3scripts/package/mkspec
+10-1Makefile
+1-1scripts/make_fit.py
+1-1scripts/cc-can-link.sh
+2-0tools/objtool/Makefile
+104-156 files

Linux/linux f06eab0tools/lib/bpf bpf_helpers.h, tools/testing/selftests/bpf/progs test_xdp_meta.c

Merge branch 'libbpf-remove-extern-declaration-of-bpf_stream_vprintk'

Ihor Solodrai says:

====================
libbpf: Remove extern declaration of bpf_stream_vprintk()

The first patch adjusts a selftest that has been using
bpf_stream_printk() macro. The second patch removes the declaration.
====================

Link: https://patch.msgid.link/20260218215651.2057673-1-ihor.solodrai@linux.dev
Signed-off-by: Alexei Starovoitov <ast at kernel.org>
DeltaFile
+6-6tools/testing/selftests/bpf/progs/test_xdp_meta.c
+0-3tools/lib/bpf/bpf_helpers.h
+6-92 files