Linux/linux 4a0c9b3kernel/trace trace_fprobe.c

Merge tag 'probes-fixes-v6.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace

Pull probe fixes from Masami Hiramatsu:

 - tprobe-events: Fix to register tracepoint correctly

   tprobe-events missed to set tracepoint data structure before
   registering callback when enabling it. This sets it correctly.

 - tprobe-events: Fix to put tracepoint_user when disable the event

   tprobe-events missed to unregister tracepoint callback when the event
   is disabled. This ensures to unregister it.

* tag 'probes-fixes-v6.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  tracing: tprobe-events: Fix to put tracepoint_user when disable the tprobe
  tracing: tprobe-events: Fix to register tracepoint correctly
DeltaFile
+6-1kernel/trace/trace_fprobe.c
+6-11 files

Linux/linux f5f2e20tools/arch/x86/include/asm msr-index.h, tools/arch/x86/include/uapi/asm kvm.h vmx.h

Merge tag 'perf-tools-fixes-for-v6.18-1-2025-11-06' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools

Pull perf tools fixes from Arnaldo Carvalho de Melo:

 - Add James Clark as a perf tools reviewer

 - Handle '1' type symbols in /proc/kallsyms, related to anonymous
   Rust closures in the DRM panic QR encoder, caught by 'perf test'

 - Sync kernel header copies: MSRs, uprobe syscall,
   DRM_IOCTL_GEM_CHANGE_HANDLE, KVM exit reasons, etc

* tag 'perf-tools-fixes-for-v6.18-1-2025-11-06' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools:
  perf symbols: Handle '1' symbols in /proc/kallsyms
  tools headers asm: Sync fls headers header with the kernel sources
  tools headers UAPI: Sync KVM's vmx.h header with the kernel sources to handle new exit reasons
  tools headers svm: Sync svm headers with the kernel sources
  tools headers UAPI: Sync x86's asm/kvm.h with the kernel sources
  MAINTAINERS: Add James Clark as a perf tools reviewer

    [8 lines not shown]
DeltaFile
+51-12tools/include/uapi/drm/drm.h
+34-0tools/arch/x86/include/uapi/asm/kvm.h
+19-1tools/arch/x86/include/asm/msr-index.h
+10-0tools/perf/trace/beauty/include/uapi/linux/prctl.h
+5-1tools/perf/util/symbol.c
+5-1tools/arch/x86/include/uapi/asm/vmx.h
+124-1510 files not shown
+147-2016 files

Linux/linux 225a97darch/riscv/include/asm insn-def.h asm.h, arch/riscv/include/asm/vendor_extensions mips.h

Merge tag 'riscv-for-linus-6.18-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux

Pull RISC-V fixes from Paul Walmsley:

 - A fix to disable KASAN checks while walking a non-current task's
   stackframe (following x86)

 - A fix for a kvrealloc()-related memory leak in
   module_frob_arch_sections()

 - Two replacements of strcpy() with strscpy()

 - A change to use the RISC-V .insn assembler directive when possible to
   assemble instructions from hex opcodes

 - Some low-impact fixes in the ptdump code and kprobes test code

* tag 'riscv-for-linus-6.18-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
  cpuidle: riscv-sbi: Replace deprecated strcpy in sbi_cpuidle_init_cpu

    [7 lines not shown]
DeltaFile
+19-2arch/riscv/kernel/stacktrace.c
+4-4arch/riscv/include/asm/insn-def.h
+6-2arch/riscv/kernel/module-sections.c
+6-0arch/riscv/include/asm/asm.h
+3-3arch/riscv/include/asm/vendor_extensions/mips.h
+3-2drivers/cpuidle/cpuidle-riscv-sbi.c
+41-135 files not shown
+52-1911 files

Linux/linux 3a157bdDocumentation/firmware-guide/acpi i2c-muxes.rst, drivers/acpi cppc_acpi.c sbs.c

Merge tag 'acpi-6.18-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull ACPI fixes from Rafael Wysocki:
 "These fix a coding mistake in the ACPI Smart Battery Subsystem (SBS)
  driver and two documentation issues:

   - Fix computation of the battery->present value in acpi_battery_read()
     to work when battery->id is not zero (Dan Carpenter)

   - Fix comment typo in the ACPI CPPC library (Chu Guangqing)

   - Fix I2C device references in two ASL examples in the firmware guide
     that were broken by a previous update (Jonas Gorski)"

* tag 'acpi-6.18-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPI: SBS: Fix present test in acpi_battery_read()
  ACPI: CPPC: Fix typo in a comment
  Documentation: ACPI: i2c-muxes: fix I2C device references
DeltaFile
+4-4Documentation/firmware-guide/acpi/i2c-muxes.rst
+1-1drivers/acpi/cppc_acpi.c
+1-1drivers/acpi/sbs.c
+6-63 files

Linux/linux c91afa7kernel/trace trace_fprobe.c

tracing: tprobe-events: Fix to put tracepoint_user when disable the tprobe

__unregister_trace_fprobe() checks tf->tuser to put it when removing
tprobe. However, disable_trace_fprobe() does not use it and only calls
unregister_fprobe(). Thus it forgets to disable tracepoint_user.

If the trace_fprobe has tuser, put it for unregistering the tracepoint
callbacks when disabling tprobe correctly.

Link: https://lore.kernel.org/all/176244794466.155515.3971904050506100243.stgit@devnote2/

Fixes: 2867495dea86 ("tracing: tprobe-events: Register tracepoint when enable tprobe event")
Cc: stable at vger.kernel.org
Signed-off-by: Masami Hiramatsu (Google) <mhiramat at kernel.org>
Tested-by: Beau Belgrave <beaub at linux.microsoft.com>
Reviewed-by: Beau Belgrave <beaub at linux.microsoft.com>
DeltaFile
+4-0kernel/trace/trace_fprobe.c
+4-01 files

Linux/linux 10d9ddakernel/trace trace_fprobe.c

tracing: tprobe-events: Fix to register tracepoint correctly

Since __tracepoint_user_init() calls tracepoint_user_register() without
initializing tuser->tpoint with given tracpoint, it does not register
tracepoint stub function as callback correctly, and tprobe does not work.

Initializing tuser->tpoint correctly before tracepoint_user_register()
so that it sets up tracepoint callback.

I confirmed below example works fine again.

echo "t sched_switch preempt prev_pid=prev->pid next_pid=next->pid" > /sys/kernel/tracing/dynamic_events
echo 1 > /sys/kernel/tracing/events/tracepoints/sched_switch/enable
cat /sys/kernel/tracing/trace_pipe

Link: https://lore.kernel.org/all/176244793514.155515.6466348656998627773.stgit@devnote2/

Fixes: 2867495dea86 ("tracing: tprobe-events: Register tracepoint when enable tprobe event")
Reported-by: Beau Belgrave <beaub at linux.microsoft.com>

    [4 lines not shown]
DeltaFile
+2-1kernel/trace/trace_fprobe.c
+2-11 files

Linux/linux 771e8f4Documentation/firmware-guide/acpi i2c-muxes.rst, drivers/acpi cppc_acpi.c

Merge branches 'acpi-cppc' and 'acpi-docs'

Merge two documentation fixes for 6.18-rc5, a commet typo fix in the
ACPI CPPC library (Chu Guangqing) and fixes for two ASL examples in the
firmware guide (Jonas Gorski).

* acpi-cppc:
  ACPI: CPPC: Fix typo in a comment

* acpi-docs:
  Documentation: ACPI: i2c-muxes: fix I2C device references
DeltaFile
+4-4Documentation/firmware-guide/acpi/i2c-muxes.rst
+1-1drivers/acpi/cppc_acpi.c
+5-52 files

Linux/linux a1388fclib/crypto Kconfig Makefile

Merge tag 'libcrypto-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux

Pull crypto library fixes from Eric Biggers:
 "Two Curve25519 related fixes:

   - Re-enable KASAN support on curve25519-hacl64.c with gcc.

   - Disable the arm optimized Curve25519 code on CPU_BIG_ENDIAN
     kernels. It has always been broken in that configuration"

* tag 'libcrypto-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux:
  lib/crypto: arm/curve25519: Disable on CPU_BIG_ENDIAN
  lib/crypto: curve25519-hacl64: Fix older clang KASAN workaround for GCC
DeltaFile
+1-1lib/crypto/Kconfig
+1-1lib/crypto/Makefile
+2-22 files

Linux/linux c668da9fs/crypto inline_crypt.c

Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/linux

Pull fscrypt fix from Eric Biggers:
 "Fix an UBSAN warning that started occurring when the block layer
  started supporting logical_block_size > PAGE_SIZE"

* tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/linux:
  fscrypt: fix left shift underflow when inode->i_blkbits > PAGE_SHIFT
DeltaFile
+1-2fs/crypto/inline_crypt.c
+1-21 files

Linux/linux c90841darch Kconfig, arch/arm Kconfig

Merge tag 'hardening-v6.18-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux

Pull hardening fixes from Kees Cook:
 "This is a work-around for a (now fixed) corner case in the arm32 build
  with Clang KCFI enabled.

   - Introduce __nocfi_generic for arm32 Clang (Nathan Chancellor)"

* tag 'hardening-v6.18-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
  libeth: xdp: Disable generic kCFI pass for libeth_xdp_tx_xmit_bulk()
  ARM: Select ARCH_USES_CFI_GENERIC_LLVM_PASS
  compiler_types: Introduce __nocfi_generic
DeltaFile
+7-0arch/Kconfig
+6-0include/linux/compiler_types.h
+2-0arch/arm/Kconfig
+1-1include/net/libeth/xdp.h
+16-14 files

Linux/linux c2c2ccfdrivers/net/dsa/microchip ksz9477.c, drivers/net/ethernet/mellanox/mlx5/core en_rx.c

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

Pull networking fixes from Jakub Kicinski:
  Including fixes from bluetooth and wireless.

  Current release - new code bugs:

   - ptp: expose raw cycles only for clocks with free-running counter

   - bonding: fix null-deref in actor_port_prio setting

   - mdio: ERR_PTR-check regmap pointer returned by
     device_node_to_regmap()

   - eth: libie: depend on DEBUG_FS when building LIBIE_FWLOG

  Previous releases - regressions:

   - virtio_net: fix perf regression due to bad alignment of

    [52 lines not shown]
DeltaFile
+163-0drivers/net/phy/micrel.c
+55-67drivers/net/wireless/ath/ath12k/mac.c
+84-14drivers/net/dsa/microchip/ksz9477.c
+78-0include/net/cfg80211.h
+39-33drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
+56-0net/wireless/core.c
+475-11466 files not shown
+877-33472 files

Linux/linux 3534e03tools/testing/selftests/vsock vmtest.sh

selftests/vsock: avoid false-positives when checking dmesg

Sometimes VMs will have some intermittent dmesg warnings that are
unrelated to vsock. Change the dmesg parsing to filter on strings
containing 'vsock' to avoid false positive failures that are unrelated
to vsock. The downside is that it is possible for some vsock related
warnings to not contain the substring 'vsock', so those will be missed.

Fixes: a4a65c6fe08b ("selftests/vsock: add initial vmtest.sh for vsock")
Reviewed-by: Simon Horman <horms at kernel.org>
Signed-off-by: Bobby Eshleman <bobbyeshleman at meta.com>
Reviewed-by: Stefano Garzarella <sgarzare at redhat.com>
Link: https://patch.msgid.link/20251105-vsock-vmtest-dmesg-fix-v2-1-1a042a14892c@meta.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+4-4tools/testing/selftests/vsock/vmtest.sh
+4-41 files

Linux/linux 13fef4fnet/bridge br_private.h br_mst.c

Merge branch 'net-bridge-fix-two-mst-bugs'

Nikolay Aleksandrov says:

====================
net: bridge: fix two MST bugs

Patch 01 fixes a race condition that exists between expired fdb deletion
and port deletion when MST is enabled. Learning can happen after the
port's state has been changed to disabled which could lead to that
port's memory being used after it's been freed. The issue was reported
by syzbot, more information in patch 01. Patch 02 fixes an issue with
MST's static key which Ido spotted, we can have multiple bridges with MST
and a single bridge can erroneously disable it for all.
====================

Link: https://patch.msgid.link/20251105111919.1499702-1-razor@blackwall.org
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+10-3net/bridge/br_private.h
+8-2net/bridge/br_mst.c
+2-2net/bridge/br_input.c
+1-1net/bridge/br_forward.c
+1-0net/bridge/br_if.c
+22-85 files

Linux/linux ee87c63net/bridge br_mst.c br_private.h

net: bridge: fix MST static key usage

As Ido pointed out, the static key usage in MST is buggy and should use
inc/dec instead of enable/disable because we can have multiple bridges
with MST enabled which means a single bridge can disable MST for all.
Use static_branch_inc/dec to avoid that. When destroying a bridge decrement
the key if MST was enabled.

Fixes: ec7328b59176 ("net: bridge: mst: Multiple Spanning Tree (MST) mode")
Reported-by: Ido Schimmel <idosch at nvidia.com>
Closes: https://lore.kernel.org/netdev/20251104120313.1306566-1-razor@blackwall.org/T/#m6888d87658f94ed1725433940f4f4ebb00b5a68b
Signed-off-by: Nikolay Aleksandrov <razor at blackwall.org>
Reviewed-by: Ido Schimmel <idosch at nvidia.com>
Link: https://patch.msgid.link/20251105111919.1499702-3-razor@blackwall.org
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+8-2net/bridge/br_mst.c
+5-0net/bridge/br_private.h
+1-0net/bridge/br_if.c
+14-23 files

Linux/linux 8dca369net/bridge br_private.h br_input.c

net: bridge: fix use-after-free due to MST port state bypass

syzbot reported[1] a use-after-free when deleting an expired fdb. It is
due to a race condition between learning still happening and a port being
deleted, after all its fdbs have been flushed. The port's state has been
toggled to disabled so no learning should happen at that time, but if we
have MST enabled, it will bypass the port's state, that together with VLAN
filtering disabled can lead to fdb learning at a time when it shouldn't
happen while the port is being deleted. VLAN filtering must be disabled
because we flush the port VLANs when it's being deleted which will stop
learning. This fix adds a check for the port's vlan group which is
initialized to NULL when the port is getting deleted, that avoids the port
state bypass. When MST is enabled there would be a minimal new overhead
in the fast-path because the port's vlan group pointer is cache-hot.

[1] https://syzkaller.appspot.com/bug?extid=dd280197f0f7ab3917be

Fixes: ec7328b59176 ("net: bridge: mst: Multiple Spanning Tree (MST) mode")
Reported-by: syzbot+dd280197f0f7ab3917be at syzkaller.appspotmail.com

    [5 lines not shown]
DeltaFile
+5-3net/bridge/br_private.h
+2-2net/bridge/br_input.c
+1-1net/bridge/br_forward.c
+8-63 files

Linux/linux 0216721drivers/net/ethernet/microchip/lan966x lan966x_ethtool.c lan966x_vcap_impl.c

lan966x: Fix sleeping in atomic context

The following warning was seen when we try to connect using ssh to the device.

BUG: sleeping function called from invalid context at kernel/locking/mutex.c:575
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 104, name: dropbear
preempt_count: 1, expected: 0
INFO: lockdep is turned off.
CPU: 0 UID: 0 PID: 104 Comm: dropbear Tainted: G        W           6.18.0-rc2-00399-g6f1ab1b109b9-dirty #530 NONE
Tainted: [W]=WARN
Hardware name: Generic DT based system
Call trace:
 unwind_backtrace from show_stack+0x10/0x14
 show_stack from dump_stack_lvl+0x7c/0xac
 dump_stack_lvl from __might_resched+0x16c/0x2b0
 __might_resched from __mutex_lock+0x64/0xd34
 __mutex_lock from mutex_lock_nested+0x1c/0x24
 mutex_lock_nested from lan966x_stats_get+0x5c/0x558
 lan966x_stats_get from dev_get_stats+0x40/0x43c

    [21 lines not shown]
DeltaFile
+9-9drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c
+4-4drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c
+2-2drivers/net/ethernet/microchip/lan966x/lan966x_main.h
+0-2drivers/net/ethernet/microchip/lan966x/lan966x_main.c
+15-174 files

Linux/linux 067bf01drivers/net/bonding bond_options.c

bonding: fix NULL pointer dereference in actor_port_prio setting

Liang reported an issue where setting a slave’s actor_port_prio to
predefined values such as 0, 255, or 65535 would cause a system crash.

The problem occurs because in bond_opt_parse(), when the provided value
matches a predefined table entry, the function returns that table entry,
which does not contain slave information. Later, in
bond_option_actor_port_prio_set(), calling bond_slave_get_rtnl() leads
to a NULL pointer dereference.

Since actor_port_prio is defined as a u16 and initialized to the default
value of 255 in ad_initialize_port(), there is no need for the
bond_actor_port_prio_tbl. Using the BOND_OPTFLAG_RAWVAL flag is sufficient.

Fixes: 6b6dc81ee7e8 ("bonding: add support for per-port LACP actor priority")
Reported-by: Liang Li <liali at redhat.com>
Signed-off-by: Hangbin Liu <liuhangbin at gmail.com>
Link: https://patch.msgid.link/20251105072620.164841-1-liuhangbin@gmail.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+1-8drivers/net/bonding/bond_options.c
+1-81 files

Linux/linux 96baf48drivers/net/dsa/microchip ksz9477.c ksz_common.c

net: dsa: microchip: Fix reserved multicast address table programming

KSZ9477/KSZ9897 and LAN937X families of switches use a reserved multicast
address table for some specific forwarding with some multicast addresses,
like the one used in STP.  The hardware assumes the host port is the last
port in KSZ9897 family and port 5 in LAN937X family.  Most of the time
this assumption is correct but not in other cases like KSZ9477.
Originally the function just setups the first entry, but the others still
need update, especially for one common multicast address that is used by
PTP operation.

LAN937x also uses different register bits when accessing the reserved
table.

Fixes: 457c182af597 ("net: dsa: microchip: generic access to ksz9477 static and reserved table")
Signed-off-by: Tristram Ha <tristram.ha at microchip.com>
Tested-by: Łukasz Majewski <lukma at nabladev.com>
Link: https://patch.msgid.link/20251105033741.6455-1-Tristram.Ha@microchip.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+84-14drivers/net/dsa/microchip/ksz9477.c
+4-0drivers/net/dsa/microchip/ksz_common.c
+1-2drivers/net/dsa/microchip/ksz9477_reg.h
+2-0drivers/net/dsa/microchip/ksz_common.h
+91-164 files

Linux/linux 7d1988adrivers/net/wireless/ath/ath12k mac.c, drivers/net/wireless/virtual mac80211_hwsim.c

Merge tag 'wireless-2025-11-05' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless

Johannes Berg says:

====================
Just two small fixes:

 - ath12k: revert a change that caused performance regressions
 - hwsim: don't ignore netns on netlink socket matching

* tag 'wireless-2025-11-05' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless:
  wifi: mac80211_hwsim: Limit destroy_on_close radio removal to netgroup
  Revert "wifi: ath12k: Fix missing station power save configuration"
====================

Link: https://patch.msgid.link/20251105152827.53254-3-johannes@sipsolutions.net
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+55-67drivers/net/wireless/ath/ath12k/mac.c
+4-3drivers/net/wireless/virtual/mac80211_hwsim.c
+59-702 files

Linux/linux 4d6ec3adrivers/net/wan/framer/pef2256 pef2256.c

net: wan: framer: pef2256: Switch to devm_mfd_add_devices()

The driver calls mfd_add_devices() but fails to call mfd_remove_devices()
in error paths after successful MFD device registration and in the remove
function. This leads to resource leaks where MFD child devices are not
properly unregistered.

Replace mfd_add_devices with devm_mfd_add_devices to automatically
manage the device resources.

Fixes: c96e976d9a05 ("net: wan: framer: Add support for the Lantiq PEF2256 framer")
Suggested-by: Herve Codina <herve.codina at bootlin.com>
Signed-off-by: Haotian Zhang <vulab at iscas.ac.cn>
Acked-by: Herve Codina <herve.codina at bootlin.com>
Link: https://patch.msgid.link/20251105034716.662-1-vulab@iscas.ac.cn
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+4-3drivers/net/wan/framer/pef2256/pef2256.c
+4-31 files

Linux/linux a04ea57drivers/net/ethernet/wangxun/libwx wx_type.h wx_hw.c

net: libwx: fix device bus LAN ID

The device bus LAN ID was obtained from PCI_FUNC(), but when a PF
port is passthrough to a virtual machine, the function number may not
match the actual port index on the device. This could cause the driver
to perform operations such as LAN reset on the wrong port.

Fix this by reading the LAN ID from port status register.

Fixes: a34b3e6ed8fb ("net: txgbe: Store PCI info")
Cc: stable at vger.kernel.org
Signed-off-by: Jiawen Wu <jiawenwu at trustnetic.com>
Reviewed-by: Simon Horman <horms at kernel.org>
Link: https://patch.msgid.link/B60A670C1F52CB8E+20251104062321.40059-1-jiawenwu@trustnetic.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+2-2drivers/net/ethernet/wangxun/libwx/wx_type.h
+2-1drivers/net/ethernet/wangxun/libwx/wx_hw.c
+4-32 files

Linux/linux b1d9154drivers/net/ethernet/mellanox/mlx5/core en_rx.c en_main.c

Merge branch 'net-mlx5e-shampo-fixes-for-64kb-page-size'

Tariq Toukan says:

====================
net/mlx5e: SHAMPO fixes for 64KB page size

This series by Dragos contains fixes for HW-GRO issues found on systems
with 64KB page size.
====================

Link: https://patch.msgid.link/1762238915-1027590-1-git-send-email-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+39-33drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
+19-5drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+3-0drivers/net/ethernet/mellanox/mlx5/core/en.h
+61-383 files

Linux/linux d8a7ed9drivers/net/ethernet/mellanox/mlx5/core en_rx.c en_main.c

net/mlx5e: SHAMPO, Fix header formulas for higher MTUs and 64K pages

The MLX5E_SHAMPO_WQ_HEADER_PER_PAGE and
MLX5E_SHAMPO_LOG_MAX_HEADER_ENTRY_SIZE macros are used directly in
several places under the assumption that there will always be more
headers per WQE than headers per page. However, this assumption doesn't
hold for 64K page sizes and higher MTUs (> 4K). This can be first
observed during header page allocation: ksm_entries will become 0 during
alignment to MLX5E_SHAMPO_WQ_HEADER_PER_PAGE.

This patch introduces 2 additional members to the mlx5e_shampo_hd struct
which are meant to be used instead of the macrose mentioned above.
When the number of headers per WQE goes below
MLX5E_SHAMPO_WQ_HEADER_PER_PAGE, clamp the number of headers per
page and expand the header size accordingly so that the headers
for one WQE cover a full page.

All the formulas are adapted to use these two new members.


    [6 lines not shown]
DeltaFile
+19-14drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
+19-5drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+3-0drivers/net/ethernet/mellanox/mlx5/core/en.h
+41-193 files

Linux/linux bacd8d8drivers/net/ethernet/mellanox/mlx5/core en_rx.c

net/mlx5e: SHAMPO, Fix skb size check for 64K pages

mlx5e_hw_gro_skb_has_enough_space() uses a formula to check if there is
enough space in the skb frags to store more data. This formula is
incorrect for 64K page sizes and it triggers early GRO session
termination because the first fragment will blow up beyond
GRO_LEGACY_MAX_SIZE.

This patch adds a special case for page sizes >= GRO_LEGACY_MAX_SIZE
(64K) which uses the skb->len instead. Within this context,
the check is safe from fragment overflow because the hardware
will continuously fill the data up to the reservation size of 64K
and the driver will coalesce all data from the same page to the same
fragment. This means that the data will span one fragment or at most
two for such a large page size.

It is expected that the if statement will be optimized out as the
check is done with constants.


    [6 lines not shown]
DeltaFile
+4-1drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
+4-11 files

Linux/linux 665a7e1drivers/net/ethernet/mellanox/mlx5/core en_rx.c

net/mlx5e: SHAMPO, Fix header mapping for 64K pages

HW-GRO is broken on mlx5 for 64K page sizes. The patch in the fixes tag
didn't take into account larger page sizes when doing an align down
of max_ksm_entries. For 64K page size, max_ksm_entries is 0 which will skip
mapping header pages via WQE UMR. This breaks header-data split
and will result in the following syndrome:

mlx5_core 0000:00:08.0 eth2: Error cqe on cqn 0x4c9, ci 0x0, qn 0x1133, opcode 0xe, syndrome 0x4, vendor syndrome 0x32
00000000: 00 00 00 00 04 4a 00 00 00 00 00 00 20 00 93 32
00000010: 55 00 00 00 fb cc 00 00 00 00 00 00 07 18 00 00
00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4a
00000030: 00 00 3b c7 93 01 32 04 00 00 00 00 00 00 bf e0
mlx5_core 0000:00:08.0 eth2: ERR CQE on RQ: 0x1133

Furthermore, the function that fills in WQE UMRs for the headers
(mlx5e_build_shampo_hd_umr()) only supports mapping page sizes that
fit in a single UMR WQE.


    [15 lines not shown]
DeltaFile
+17-19drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
+17-191 files

Linux/linux ae4789adrivers/net/ethernet/ti/icssg icssg_config.c

net: ti: icssg-prueth: Fix fdb hash size configuration

The ICSSG driver does the initial FDB configuration which
includes setting the control registers. Other run time
management like learning is managed by the PRU's. The default
FDB hash size used by the firmware is 512 slots, which is
currently missing in the current driver. Update the driver
FDB config to include FDB hash size as well.

Please refer trm [1] 6.4.14.12.17 section on how the FDB config
register gets configured. From the table 6-1404, there is a reset
field for FDB_HAS_SIZE which is 4, meaning 1024 slots. Currently
the driver is not updating this reset value from 4(1024 slots) to
3(512 slots). This patch fixes this by updating the reset value
to 512 slots.

[1]: https://www.ti.com/lit/pdf/spruim2
Fixes: abd5576b9c57f ("net: ti: icssg-prueth: Add support for ICSSG switch firmware")
Signed-off-by: Meghana Malladi <m-malladi at ti.com>

    [3 lines not shown]
DeltaFile
+7-0drivers/net/ethernet/ti/icssg/icssg_config.c
+7-01 files

Linux/linux d1c94bcdrivers/net/ethernet/mellanox/mlx5/core en_ethtool.c

net/mlx5e: Fix return value in case of module EEPROM read error

mlx5e_get_module_eeprom_by_page() has weird error handling.

First, it is treating -EINVAL as a special case, but it is unclear why.

Second, it tries to fail "gracefully" by returning the number of bytes
read even in case of an error. This results in wrongly returning
success (0 return value) if the error occurs before any bytes were
read.

Simplify the error handling by returning an error when such occurs. This
also aligns with the error handling we have in mlx5e_get_module_eeprom()
for the old API.

This fixes the following case where the query fails, but userspace
ethtool wrongly treats it as success and dumps an output:

  # ethtool -m eth2

    [20 lines not shown]
DeltaFile
+1-3drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c
+1-31 files

Linux/linux d917c21net/core gro_cells.c

net: gro_cells: Reduce lock scope in gro_cell_poll

One GRO-cell device's NAPI callback can nest into the GRO-cell of
another device if the underlying device is also using GRO-cell.
This is the case for IPsec over vxlan.
These two GRO-cells are separate devices. From lockdep's point of view
it is the same because each device is sharing the same lock class and so
it reports a possible deadlock assuming one device is nesting into
itself.

Hold the bh_lock only while accessing gro_cell::napi_skbs in
gro_cell_poll(). This reduces the locking scope and avoids acquiring the
same lock class multiple times.

Fixes: 25718fdcbdd2 ("net: gro_cells: Use nested-BH locking for gro_cell")
Reported-by: Gal Pressman <gal at nvidia.com>
Closes: https://lore.kernel.org/all/66664116-edb8-48dc-ad72-d5223696dd19@nvidia.com/
Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
Link: https://patch.msgid.link/20251104153435.ty88xDQt@linutronix.de
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+2-2net/core/gro_cells.c
+2-21 files

Linux/linux b1d16f7drivers/net/ethernet/intel Kconfig, drivers/net/ethernet/intel/ixgbe ixgbe.h

libie: depend on DEBUG_FS when building LIBIE_FWLOG

LIBIE_FWLOG is unusable without DEBUG_FS. Mark it in Kconfig.

Fix build error on ixgbe when DEBUG_FS is not set. To not add another
layer of #if IS_ENABLED(LIBIE_FWLOG) in ixgbe fwlog code define debugfs
dentry even when DEBUG_FS isn't enabled. In this case the dummy
functions of LIBIE_FWLOG will be used, so not initialized dentry isn't a
problem.

Fixes: 641585bc978e ("ixgbe: fwlog support for e610")
Reported-by: Guenter Roeck <linux at roeck-us.net>
Closes: https://lore.kernel.org/lkml/f594c621-f9e1-49f2-af31-23fbcb176058@roeck-us.net/
Signed-off-by: Michal Swiatkowski <michal.swiatkowski at linux.intel.com>
Reviewed-by: Simon Horman <horms at kernel.org>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov at intel.com>
Tested-by: Rinitha S <sx.rinitha at intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen at intel.com>
Link: https://patch.msgid.link/20251104172333.752445-1-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba at kernel.org>
DeltaFile
+12-0include/linux/net/intel/libie/fwlog.h
+2-2drivers/net/ethernet/intel/Kconfig
+0-2drivers/net/ethernet/intel/ixgbe/ixgbe.h
+14-43 files

Linux/linux dc77806arch/loongarch Makefile, arch/x86 Makefile

Merge tag 'rust-fixes-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux

Pull rust fixes from Miguel Ojeda:

 - Fix/workaround a couple Rust 1.91.0 build issues when sanitizers are
   enabled due to extra checking performed by the compiler and an
   upstream issue already fixed for Rust 1.93.0

 - Fix future Rust 1.93.0 builds by supporting the stabilized name for
   the 'no-jump-tables' flag

 - Fix a couple private/broken intra-doc links uncovered by the future
   move of pin-init to 'syn'

* tag 'rust-fixes-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux:
  rust: kbuild: support `-Cjump-tables=n` for Rust 1.93.0
  rust: kbuild: workaround `rustdoc` doctests modifier bug
  rust: kbuild: treat `build_error` and `rustdoc` as kernel objects
  rust: condvar: fix broken intra-doc link
  rust: devres: fix private intra-doc link
DeltaFile
+14-1rust/Makefile
+1-1arch/x86/Makefile
+1-1rust/kernel/devres.rs
+1-1rust/kernel/sync/condvar.rs
+1-1arch/loongarch/Makefile
+18-55 files