Skip to content

NAS-140735 / 26.0.0-BETA.2 / Update Linux kernel to v6.18.23 (by ixhamza)#256

Merged
yocalebo merged 2963 commits into
stable/26from
NAS-140735-26.0.0-BETA.2
Apr 21, 2026
Merged

NAS-140735 / 26.0.0-BETA.2 / Update Linux kernel to v6.18.23 (by ixhamza)#256
yocalebo merged 2963 commits into
stable/26from
NAS-140735-26.0.0-BETA.2

Conversation

@bugclerk
Copy link
Copy Markdown

  • Updated the LTS Linux kernel from v6.18.13 -> v6.18.23.
  • Updated the Debian kernel configuration to 6.18.15 (Latest available).
  • No merge conflicts.
  • This merge includes CVE fix

Notable NFS/SMB fixes

===
NFS
===
hamza@~/linux-merge (merge-upstream-6.18.23) $ git log --oneline v6.18.13..v6.18.23 | grep -iwE 'nfs|nfsd|nfsv4'
0f0e2a54a31a7 nfsd: fix heap overflow in NFSv4.0 LOCK replay cache
db4a9f99b12a7 NFSD: Hold net reference for the lifetime of /proc/fs/nfs/exports fd
2829e80d29b62 NFSD: Defer sub-object cleanup in export put callbacks
019debe5851d7 nfsd: Fix cred ref leak in nfsd_nl_listener_set_doit().
203c792cb4315 nfs: return EISDIR on nfs3_proc_create if d_alias is a dir
27c13c5bb0948 nfsd: Fix cred ref leak in nfsd_nl_threads_set_doit().
2eb988d5c8f8e nfsd: fix return error code for nfsd_map_name_to_[ug]id
6689272b82618 NFSD: fix setting FMODE_NOCMTIME in nfs4_open_delegation
47d3fed638664 fs/nfs: Fix readdir slow-start regression
055cd68b8ebbd NFS/localio: remove -EAGAIN handling in nfs_local_doio()
1d6933f32b297 NFS/localio: use GFP_NOIO and non-memreclaim workqueue in nfs_local_commit
ae26a4cf2baf0 NFS/localio: prevent direct reclaim recursion into NFS via nfs_writepages
c627769730e98 NFS/localio: Handle short writes by retrying
d75ec4504a434 nfsd: never defer requests during idmap lookup
59d23891cdba5 NFS: NFSERR_INVAL is not defined by NFSv2

====
SMB
====
hamza@~/linux-merge (merge-upstream-6.18.23) $ git log --oneline v6.18.13..v6.18.23 | grep -iwE 'smb|cifs|ksmbd'
075ea208c648c ksmbd: fix OOB write in QUERY_INFO for compound requests
f4e35576da439 smb: client: fix generic/694 due to wrong ->i_blocks
a5c6f6d6ceefe ksmbd: fix use-after-free and NULL deref in smb_grant_oplock()
a897064a45705 ksmbd: do not expire session on binding failure
3cdacd11b4156 ksmbd: fix memory leaks and NULL deref in smb2_lock()
b0cd9725fe2bc ksmbd: fix potencial OOB in get_file_all_info() for compound requests
80824c7e527b7 ksmbd: replace hardcoded hdr2_len with offsetof() in smb2_calc_max_out_buf_len()
a5828c14a9e3d ksmbd: fix use-after-free in durable v2 replay of active file handles
7f7468fd2a755 ksmbd: fix use-after-free of share_conf in compound request
407cc37c21d51 ksmbd: Don't log keys in SMB3 signing and encryption key generation
f655467a9973f cifs: open files should not hold ref on superblock
3d80ebe6d1b7b ksmbd: use volume UUID in FS_OBJECT_ID_INFORMATION
9feb2d1bf86d9 ksmbd: unset conn->binding on failed binding request
9ee803bfdba0c smb: client: fix krb5 mount with username option
93c0a22fec914 ksmbd: Compare MACs in constant time
4af5dfb8dca3a smb: client: Compare MACs in constant time
9b753ece26524 smb: client: fix iface port assignment in parse_server_interfaces
92e64f1852f45 smb: client: fix in-place encryption corruption in SMB2_write()
9509b659ca7eb smb: client: fix atomic open with O_DIRECT & O_SYNC
316cc7b63fd58 cifs: make default value of retrans as zero
1d6abf145615d ksmbd: fix use-after-free by using call_rcu() for oplock_info
8f5b1a7cb009a smb: server: fix use-after-free in smb2_open()
dbbd328cf5826 ksmbd: fix use-after-free in smb_lazy_parent_lease_break_close()
28a72f653832a smb/server: Fix another refcount leak in smb2_open()
5566a9eeb00e5 smb/client: fix buffer size for smb311_posix_qinfo in SMB311_posix_query_info()
b751369b03c8a smb/client: fix buffer size for smb311_posix_qinfo in smb2_compound_op()
0c578e8065c4b ksmbd: call ksmbd_vfs_kern_path_end_removing() on some error paths
86163b98891aa smb: client: fix oops due to uninitialised var in smb2_unlink()
2ef0fc3bf49db smb: client: Don't log plaintext credentials in cifs_set_cifscreds
134596a6e4be9 smb: client: fix broken multichannel with krb5+signing
0786f9422cbf7 smb: client: fix cifs_pick_channel when channels are equally loaded
7c9ce68192eef cifs: some missing initializations on replay
3969db6b22e3d cifs: Fix locking usage for tcon fields
ceae058eb707d ksmbd: fix signededness bug in smb_direct_prepare_negotiation()
6287eefaf21ec smb: client: prevent races in ->query_interfaces()
327de5b59801b smb: client: add proper locking around ses->iface_last_update
03462247e3b65 smb: client: correct value for smbd_max_fragmented_recv_size
e66dcf7bb9c4d smb: client: fix potential UAF and double free in smb2_open_file()

Testing

  • CI passed successfully
  • Scale Build
  • API Tests
  • Verified manual boot with QEMU
  • Compared boot logs against v6.18.13 to confirm no regressions

Original PR: #254

outman119 and others added 30 commits April 11, 2026 14:26
…move() callback

[ Upstream commit b0dc7e7c56573e7a52080f25f3179a45f3dd7e6f ]

aml_sfc_probe() registers the on-host NAND ECC engine, but teardown was
missing from both probe unwind and remove-time cleanup. Add a devm cleanup
action after successful registration so
nand_ecc_unregister_on_host_hw_engine() runs automatically on probe
failures and during device removal.

Fixes: 4670db6 ("spi: amlogic: add driver for Amlogic SPI Flash Controller")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Link: https://patch.msgid.link/20260322-spifc-a4-v1-1-2dc5ebcbe0a9@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
[ Upstream commit 09773978879ecf71a7990fe9a28ce4eb92bce645 ]

In occ_show_extended() case 0, when the EXTN_FLAG_SENSOR_ID flag
is set, the sysfs_emit format string "%u" is missing the trailing
newline that the sysfs ABI expects. The else branch correctly uses
"%4phN\n", and all other show functions in this file include the
trailing newline.

Add the missing "\n" for consistency and correct sysfs output.

Fixes: c10e753 ("hwmon (occ): Add sensor types and versions")
Signed-off-by: Sanman Pradhan <psanman@juniper.net>
Link: https://lore.kernel.org/r/20260326224510.294619-3-sanman.pradhan@hpe.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
[ Upstream commit 5e77923a3eb39cce91bf08ed7670f816bf86d4af ]

Fix incorrect error checking and memory type confusion in
efidrm_device_create(). devm_memremap() returns error pointers, not
NULL, and returns system memory while devm_ioremap() returns I/O memory.
The code incorrectly passes system memory to iosys_map_set_vaddr_iomem().

Restructure to handle each memory type separately. Use devm_ioremap*()
with ERR_PTR(-ENXIO) for WC/UC, and devm_memremap() with ERR_CAST() for
WT/WB.

Fixes: 32ae90c ("drm/sysfb: Add efidrm for EFI displays")
Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260311064652.2903449-1-nichen@iscas.ac.cn
Signed-off-by: Sasha Levin <sashal@kernel.org>
[ Upstream commit cffff6df669a438ecac506dadd49a53d4475a796 ]

On the Asus PRIME X670E-PRO WIFI, the driver reports a constant value of
zero for T_Sensor. On this board, the register for T_Sensor is at a
different address, as found by experimentation and confirmed by
comparison to an independent temperature reading.

* sensor disconnected: -62.0°C
* ambient temperature: +22.0°C
* held between fingers: +30.0°C

Introduce SENSOR_TEMP_T_SENSOR_ALT1 to support the PRIME X670E-PRO WIFI
without causing a regression for other 600-series boards

Fixes: e044475 ("hwmon: (asus-ec-sensors) add PRIME X670E-PRO WIFI")
Signed-off-by: Corey Hickey <bugfood-c@fatooh.org>
Link: https://lore.kernel.org/r/20260331215414.368785-1-bugfood-ml@fatooh.org
[groeck: Fixed typo, updated Fixes: reference]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
[ Upstream commit 43985a62bab9d35e5e9af41118ce2f44c01b97d2 ]

Update CPU clock index to match the clock driver changes.

Fixes: d34db68 ("clk: ralink: mtmips: fix clocks probe order in oldest ralink SoCs")
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Reviewed-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
[ Upstream commit 1319ea57529e131822bab56bf417c8edc2db9ae8 ]

John reported that stress-ng-yield could make his machine unhappy and
managed to bisect it to commit b3d99f43c72b ("sched/fair: Fix
zero_vruntime tracking").

The combination of yield and that commit was specific enough to
hypothesize the following scenario:

Suppose we have 2 runnable tasks, both doing yield. Then one will be
eligible and one will not be, because the average position must be in
between these two entities.

Therefore, the runnable task will be eligible, and be promoted a full
slice (all the tasks do is yield after all). This causes it to jump over
the other task and now the other task is eligible and current is no
longer. So we schedule.

Since we are runnable, there is no {de,en}queue. All we have is the
__{en,de}queue_entity() from {put_prev,set_next}_task(). But per the
fingered commit, those two no longer move zero_vruntime.

All that moves zero_vruntime are tick and full {de,en}queue.

This means, that if the two tasks playing leapfrog can reach the
critical speed to reach the overflow point inside one tick's worth of
time, we're up a creek.

Additionally, when multiple cgroups are involved, there is no guarantee
the tick will in fact hit every cgroup in a timely manner. Statistically
speaking it will, but that same statistics does not rule out the
possibility of one cgroup not getting a tick for a significant amount of
time -- however unlikely.

Therefore, just like with the yield() case, force an update at the end
of every slice. This ensures the update is never more than a single
slice behind and the whole thing is within 2 lag bounds as per the
comment on entity_key().

Fixes: b3d99f43c72b ("sched/fair: Fix zero_vruntime tracking")
Reported-by: John Stultz <jstultz@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
Tested-by: K Prateek Nayak <kprateek.nayak@amd.com>
Tested-by: John Stultz <jstultz@google.com>
Link: https://patch.msgid.link/20260401132355.081530332@infradead.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
[ Upstream commit dbde07f06226438cd2cf1179745fa1bec5d8914a ]

Auto counter reload may have a group of events with software events
present within it. The software event PMU isn't the x86_hybrid_pmu and
a container_of operation in intel_pmu_set_acr_caused_constr (via the
hybrid helper) could cause out of bound memory reads. Avoid this by
guarding the call to intel_pmu_set_acr_caused_constr with an
is_x86_event check.

Fixes: ec980e4 ("perf/x86/intel: Support auto counter reload")
Signed-off-by: Ian Rogers <irogers@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Thomas Falcon <thomas.falcon@intel.com>
Link: https://patch.msgid.link/20260312194305.1834035-1-irogers@google.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
[ Upstream commit 834911eb8eef2501485d819b4eabebadc25c3497 ]

Fix several bugs in the RISC-V kgdb implementation:

- The element of dbg_reg_def[] that is supposed to pertain to the S1
  register embeds instead the struct pt_regs offset of the A1
  register.  Fix this to use the S1 register offset in struct pt_regs.

- The sleeping_thread_to_gdb_regs() function copies the value of the
  S10 register into the gdb_regs[] array element meant for the S9
  register, and copies the value of the S11 register into the array
  element meant for the S10 register.  It also neglects to copy the
  value of the S11 register.  Fix all of these issues.

Fixes: fe89bd2 ("riscv: Add KGDB support")
Cc: Vincent Chen <vincent.chen@sifive.com>
Link: https://patch.msgid.link/fde376f8-bcfd-bfe4-e467-07d8f7608d05@kernel.org
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
[ Upstream commit 3033b2b1e3949274f33a140e2a97571b5a307298 ]

In set_tagged_addr_ctrl(), when PR_TAGGED_ADDR_ENABLE is not set, pmlen
is correctly set to 0, but it forgets to reset pmm. This results in the
CPU pmm state not corresponding to the software pmlen state.

Fix this by resetting pmm along with pmlen.

Fixes: 2e17430 ("riscv: Add support for the tagged address ABI")
Signed-off-by: Zishun Yi <vulab@iscas.ac.cn>
Reviewed-by: Samuel Holland <samuel.holland@sifive.com>
Link: https://patch.msgid.link/20260322160022.21908-1-vulab@iscas.ac.cn
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
[ Upstream commit 9156585280f161fc1c3552cf1860559edb2bb7e3 ]

EPROBE_DEFER ensures IOMMU devices are probed before the devices that
depend on them. During shutdown, however, the IOMMU may be removed
first, leading to issues. To avoid this, a device link is added
which enforces the correct removal order.

Fixes: 8f77295 ("ACPI: RISC-V: Add support for RIMT")
Signed-off-by: Sunil V L <sunilvl@oss.qualcomm.com>
Link: https://patch.msgid.link/20260303061605.722949-1-sunilvl@oss.qualcomm.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
commit f8995c2df519f382525ca4bc90553ad2ec611067 upstream.

The drm compat ioctl path takes a user controlled pointer, and then
dereferences it into a table of function pointers, the signature method
of spectre problems.  Fix this up by calling array_index_nospec() on the
index to the function pointer list.

Fixes: 505b524 ("drm/ioctl: Fix Spectre v1 vulnerabilities")
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: stable <stable@kernel.org>
Assisted-by: gkh_clanker_2000
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Simona Vetter <simona@ffwll.ch>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/2026032451-playing-rummage-8fa2@gregkh
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit ec327abae5edd1d5b60ea9f920212970133171d2 upstream.

When declaring an immutable global variable in Rust, the compiler checks
that it looks thread safe, because it is generally safe to access said
global variable. When using C bindings types for these globals, we don't
really want this check, because it is conservative and assumes pointers
are not thread safe.

In the case of BINDER_VM_OPS, this is a challenge when combined with the
patch 'userfaultfd: introduce vm_uffd_ops' [1], which introduces a
pointer field to vm_operations_struct. It previously only held function
pointers, which are considered thread safe.

Rust Binder should not be assuming that vm_operations_struct contains no
pointer fields, so to fix this, use AssertSync (which Rust Binder has
already declared for another similar global of type struct
file_operations with the same problem). This ensures that even if
another commit adds a pointer field to vm_operations_struct, this does
not cause problems.

Fixes: 8ef2c15aeae0 ("rust_binder: check ownership before using vma")
Cc: stable <stable@kernel.org>
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202603121235.tpnRxFKO-lkp@intel.com/
Link: https://lore.kernel.org/r/20260306171815.3160826-8-rppt@kernel.org [1]
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Link: https://patch.msgid.link/20260314111951.4139029-1-aliceryhl@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit d049e56b1739101d1c4d81deedb269c52a8dbba0 upstream.

The variable valuesize is declared as u8 but accumulates the total
length of all SSIDs to scan. Each SSID contributes up to 33 bytes
(IEEE80211_MAX_SSID_LEN + 1), and with WILC_MAX_NUM_PROBED_SSID (10)
SSIDs the total can reach 330, which wraps around to 74 when stored
in a u8.

This causes kmalloc to allocate only 75 bytes while the subsequent
memcpy writes up to 331 bytes into the buffer, resulting in a 256-byte
heap buffer overflow.

Widen valuesize from u8 to u32 to accommodate the full range.

Fixes: c5c77ba ("staging: wilc1000: Add SDIO/SPI 802.11 driver")
Cc: stable@vger.kernel.org
Signed-off-by: Yasuaki Torimaru <yasuakitorimaru@gmail.com>
Link: https://patch.msgid.link/20260324100624.983458-1-yasuakitorimaru@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
…tch_info_handler()

commit 744fabc338e87b95c4d1ff7c95bc8c0f834c6d99 upstream.

The memcpy function assumes the dynamic array notif->matches is at least
as large as the number of bytes to copy. Otherwise, results->matches may
contain unwanted data. To guarantee safety, extend the validation in one
of the checks to ensure sufficient packet length.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Cc: stable@vger.kernel.org
Fixes: 5ac54af ("wifi: iwlwifi: mvm: Add handling for scan offload match info notification")
Signed-off-by: Alexey Velichayshiy <a.velichayshiy@ispras.ru>
Link: https://patch.msgid.link/20260207150335.1013646-1-a.velichayshiy@ispras.ru
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit e8d0ed37bd51da52da6225d278e330c2f18a6198 upstream.

Add support for the SDX62-based MeiG Smart SRM825WN module.

If#= 0: RNDIS
If#= 1: RNDIS
If#= 2: Diag
If#= 3: AT
If#= 4: AT
If#= 5: NMEA

T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 19 Spd=480  MxCh= 0
D:  Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=2dee ProdID=4d38 Rev= 5.04
S:  Manufacturer=MEIG
S:  Product=LTE-A Module
S:  SerialNumber=da47a175
C:* #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=500mA
A:  FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=03
I:* If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
E:  Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
E:  Ad=84(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
E:  Ad=86(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option
E:  Ad=88(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Signed-off-by: Ernestas Kulik <ernestas.k@iconn-networks.com>
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit e927b36ae18b66b49219eaa9f46edc7b4fdbb25e upstream.

dcn401_init_hw() assumes that update_bw_bounding_box() is valid when
entering the update path. However, the existing condition:

  ((!fams2_enable && update_bw_bounding_box) || freq_changed)

does not guarantee this, as the freq_changed branch can evaluate to true
independently of the callback pointer.

This can result in calling update_bw_bounding_box() when it is NULL.

Fix this by separating the update condition from the pointer checks and
ensuring the callback, dc->clk_mgr, and bw_params are validated before
use.

Fixes the below:
../dc/hwss/dcn401/dcn401_hwseq.c:367 dcn401_init_hw() error: we previously assumed 'dc->res_pool->funcs->update_bw_bounding_box' could be null (see line 362)

Fixes: ca0fb24 ("drm/amd/display: Underflow Seen on DCN401 eGPU")
Cc: Daniel Sa <Daniel.Sa@amd.com>
Cc: Alvin Lee <alvin.lee2@amd.com>
Cc: Roman Li <roman.li@amd.com>
Cc: Alex Hung <alex.hung@amd.com>
Cc: Tom Chung <chiahsuan.chung@amd.com>
Cc: Dan Carpenter <dan.carpenter@linaro.org>
Cc: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 86117c5ab42f21562fedb0a64bffea3ee5fcd477)
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit db08b1940f4beb25460b4a4e9da3446454f2e8fe upstream.

In the WAKE_SYNC path of scx_select_cpu_dfl(), waker_node was computed
with cpu_to_node(), while node (for prev_cpu) was computed with
scx_cpu_node_if_enabled(). When scx_builtin_idle_per_node is disabled,
idle_cpumask(waker_node) is called with a real node ID even though
per-node idle tracking is disabled, resulting in undefined behavior.

Fix by using scx_cpu_node_if_enabled() for waker_node as well, ensuring
both variables are computed consistently.

Fixes: 4884927 ("sched_ext: idle: Per-node idle cpumasks")
Cc: stable@vger.kernel.org # v6.15+
Signed-off-by: Cheng-Yang Chou <yphbchou0911@gmail.com>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit e5046823f8fa3677341b541a25af2fcb99a5b1e0 upstream.

Since the ChaCha permutation is invertible, the local variable
'permuted_state' is sufficient to compute the original 'state', and thus
the key, even after the permutation has been done.

While the kernel is quite inconsistent about zeroizing secrets on the
stack (and some prominent userspace crypto libraries don't bother at all
since it's not guaranteed to work anyway), the kernel does try to do it
as a best practice, especially in cases involving the RNG.

Thus, explicitly zeroize 'permuted_state' before it goes out of scope.

Fixes: c08d0e6 ("crypto: chacha20 - Add a generic ChaCha20 stream cipher implementation")
Cc: stable@vger.kernel.org
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20260326032920.39408-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 45424e871abf2a152e247a9cff78359f18dd95c0 upstream.

The loop creates a whitespace-stripped copy of the card shortname
where `len < sizeof(card->id)` is used for the bounds check. Since
sizeof(card->id) is 16 and the local id buffer is also 16 bytes,
writing 16 non-space characters fills the entire buffer,
overwriting the terminating nullbyte.

When this non-null-terminated string is later passed to
snd_card_set_id() -> copy_valid_id_string(), the function scans
forward with `while (*nid && ...)` and reads past the end of the
stack buffer, reading the contents of the stack.

A USB device with a product name containing many non-ASCII, non-space
characters (e.g. multibyte UTF-8) will reliably trigger this as follows:

  BUG: KASAN: stack-out-of-bounds in copy_valid_id_string
       sound/core/init.c:696 [inline]
  BUG: KASAN: stack-out-of-bounds in snd_card_set_id_no_lock+0x698/0x74c
       sound/core/init.c:718

The off-by-one has been present since commit bafeee5 ("ALSA:
snd_usb_caiaq: give better shortname") from June 2009 (v2.6.31-rc1),
which first introduced this whitespace-stripping loop. The original
code never accounted for the null terminator when bounding the copy.

Fix this by changing the loop bound to `sizeof(card->id) - 1`,
ensuring at least one byte remains as the null terminator.

Fixes: bafeee5 ("ALSA: snd_usb_caiaq: give better shortname")
Cc: stable@vger.kernel.org
Cc: Andrey Konovalov <andreyknvl@gmail.com>
Reported-by: Berk Cem Goksel <berkcgoksel@gmail.com>
Signed-off-by: Berk Cem Goksel <berkcgoksel@gmail.com>
Link: https://patch.msgid.link/20260329133825.581585-1-berkcgoksel@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit b045ab3dff97edae6d538eeff900a34c098761f8 upstream.

SPDIF1 DAIO type isn't properly handled in daio_device_index() for
hw20k2, and it returned -EINVAL, which ended up with the out-of-bounds
array access.  Follow the hw20k1 pattern and return the proper index
for this type, too.

Reported-and-tested-by: Karsten Hohmeier <linux@hohmatik.de>
Closes: https://lore.kernel.org/20260315155004.15633-1-linux@hohmatik.de
Cc: <stable@vger.kernel.org>
Link: https://patch.msgid.link/20260329091240.420194-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit f1af71d568e55536d9297bfa7907ad497108cf30 upstream.

ASUS ROG Strix SCAR 15, like the Strix G15, requires the
ALC285_FIXUP_ASUS_G533Z_PINS quirk to work properly.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=221247
Cc: <stable@vger.kernel.org>
Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
Link: https://patch.msgid.link/20260330075334.50962-2-zhangheng@kylinos.cn
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 1fbf85dbf02c96c318e056fb5b8fc614758fee3c upstream.

This adds a mute led quirck for HP Victus 15-fb0xxx (103c:8a3d) model

- As it used 0x8(full bright)/0x7f(little dim) for mute led on and other
  values as 0ff (0x0, 0x4, ...)

- So, use ALC245_FIXUP_HP_MUTE_LED_V2_COEFBIT insted for safer approach

Cc: <stable@vger.kernel.org>
Signed-off-by: Sourav Nayak <nonameblank007@gmail.com>
Link: https://patch.msgid.link/20260327142805.17139-1-nonameblank007@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit b948f9d5d3057b01188e36664e7c7604d1c8ecb5 upstream.

sqe->len is __u32 but gets stored into sr->len which is int. When
userspace passes sqe->len values exceeding INT_MAX (e.g. 0xFFFFFFFF),
sr->len overflows to a negative value. This negative value propagates
through the bundle recv/send path:

  1. io_recv(): sel.val = sr->len (ssize_t gets -1)
  2. io_recv_buf_select(): arg.max_len = sel->val (size_t gets
     0xFFFFFFFFFFFFFFFF)
  3. io_ring_buffers_peek(): buf->len is not clamped because max_len
     is astronomically large
  4. iov[].iov_len = 0xFFFFFFFF flows into io_bundle_nbufs()
  5. io_bundle_nbufs(): min_t(int, 0xFFFFFFFF, ret) yields -1,
     causing ret to increase instead of decrease, creating an
     infinite loop that reads past the allocated iov[] array

This results in a slab-out-of-bounds read in io_bundle_nbufs() from
the kmalloc-64 slab, as nbufs increments past the allocated iovec
entries.

  BUG: KASAN: slab-out-of-bounds in io_bundle_nbufs+0x128/0x160
  Read of size 8 at addr ffff888100ae05c8 by task exp/145
  Call Trace:
   io_bundle_nbufs+0x128/0x160
   io_recv_finish+0x117/0xe20
   io_recv+0x2db/0x1160

Fix this by rejecting negative sr->len values early in both
io_sendmsg_prep() and io_recvmsg_prep(). Since sqe->len is __u32,
any value > INT_MAX indicates overflow and is not a valid length.

Fixes: a05d1f6 ("io_uring/net: support bundles for send")
Cc: stable@vger.kernel.org
Signed-off-by: Junxi Qian <qjx1298677004@gmail.com>
Link: https://patch.msgid.link/20260329153909.279046-1-qjx1298677004@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
…state

commit 20756fec2f0108cb88e815941f1ffff88dc286fe upstream.

The legacy responder path in smp_random() currently labels the stored
STK as authenticated whenever pending_sec_level is BT_SECURITY_HIGH.
That reflects what the local service requested, not what the pairing
flow actually achieved.

For Just Works/Confirm legacy pairing, SMP_FLAG_MITM_AUTH stays clear
and the resulting STK should remain unauthenticated even if the local
side requested HIGH security. Use the established MITM state when
storing the responder STK so the key metadata matches the pairing result.

This also keeps the legacy path aligned with the Secure Connections code,
which already treats JUST_WORKS/JUST_CFM as unauthenticated.

Fixes: fff3490 ("Bluetooth: Fix setting correct authentication information for SMP STK")
Cc: stable@vger.kernel.org
Signed-off-by: Oleh Konko <security@1seal.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
… pairing response

commit d05111bfe37bfd8bd4d2dfe6675d6bdeef43f7c7 upstream.

smp_cmd_pairing_req() currently builds the pairing response from the
initiator auth_req before enforcing the local BT_SECURITY_HIGH
requirement. If the initiator omits SMP_AUTH_MITM, the response can
also omit it even though the local side still requires MITM.

tk_request() then sees an auth value without SMP_AUTH_MITM and may
select JUST_CFM, making method selection inconsistent with the pairing
policy the responder already enforces.

When the local side requires HIGH security, first verify that MITM can
be achieved from the IO capabilities and then force SMP_AUTH_MITM in the
response in both rsp.auth_req and auth. This keeps the responder auth bits
and later method selection aligned.

Fixes: 2b64d15 ("Bluetooth: Add MITM mechanism to LE-SMP")
Cc: stable@vger.kernel.org
Suggested-by: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Signed-off-by: Oleh Konko <security@1seal.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit bc39a094730ce062fa034a529c93147c096cb488 upstream.

hci_le_big_create_sync() uses DEFINE_FLEX to allocate a
struct hci_cp_le_big_create_sync on the stack with room for 0x11 (17)
BIS entries.  However, conn->num_bis can hold up to HCI_MAX_ISO_BIS (31)
entries — validated against ISO_MAX_NUM_BIS (0x1f) in the caller
hci_conn_big_create_sync().  When conn->num_bis is between 18 and 31,
the memcpy that copies conn->bis into cp->bis writes up to 14 bytes
past the stack buffer, corrupting adjacent stack memory.

This is trivially reproducible: binding an ISO socket with
bc_num_bis = ISO_MAX_NUM_BIS (31) and calling listen() will
eventually trigger hci_le_big_create_sync() from the HCI command
sync worker, causing a KASAN-detectable stack-out-of-bounds write:

  BUG: KASAN: stack-out-of-bounds in hci_le_big_create_sync+0x256/0x3b0
  Write of size 31 at addr ffffc90000487b48 by task kworker/u9:0/71

Fix this by changing the DEFINE_FLEX count from the incorrect 0x11 to
HCI_MAX_ISO_BIS, which matches the maximum number of BIS entries that
conn->bis can actually carry.

Fixes: 42ecf19 ("Bluetooth: ISO: Do not emit LE BIG Create Sync if previous is pending")
Cc: stable@vger.kernel.org
Signed-off-by: hkbinbin <hkbinbinbin@gmail.com>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit fda9522ed6afaec45cabc198d8492270c394c7bc upstream.

When a compound request such as READ + QUERY_INFO(Security) is received,
and the first command (READ) consumes most of the response buffer,
ksmbd could write beyond the allocated buffer while building a security
descriptor.

The root cause was that smb2_get_info_sec() checked buffer space using
ppntsd_size from xattr, while build_sec_desc() often synthesized a
significantly larger descriptor from POSIX ACLs.

This patch introduces smb_acl_sec_desc_scratch_len() to accurately
compute the final descriptor size beforehand, performs proper buffer
checking with smb2_calc_max_out_buf_len(), and uses exact-sized
allocation + iov pinning.

Cc: stable@vger.kernel.org
Fixes: e2b76ab ("ksmbd: add support for read compound")
Signed-off-by: Asim Viladi Oglu Manizada <manizada@pm.me>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit d62cf1511743526f530a4c169424e50c757f5a5e upstream.

Bring back cache initialisation for Broadcom SiByte SB1 cores, which has
been removed causing the kernel to hang at bootstrap right after:

Dentry cache hash table entries: 524288 (order: 8, 4194304 bytes, linear)
Inode-cache hash table entries: 262144 (order: 7, 2097152 bytes, linear)

The cause of the problem is R4k cache handlers are also used by Broadcom
SiByte SB1 cores, however with a different cache error exception handler
and therefore not using CPU_R4K_CACHE_TLB:

obj-$(CONFIG_CPU_R4K_CACHE_TLB) += c-r4k.o cex-gen.o tlb-r4k.o
obj-$(CONFIG_CPU_SB1)           += c-r4k.o cerr-sb1.o cex-sb1.o tlb-r4k.o

(from arch/mips/mm/Makefile).

Fixes: bbe4f63 ("mips: fix r3k_cache_init build regression")
Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
Cc: stable@vger.kernel.org # v6.8+
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit ec8bf18814915460d9c617b556bf024efef26613 upstream.

It was only GCC 10 that fixed a MIPS64r6 code generation issue with a
`__multi3' libcall inefficiently produced to perform 64-bit widening
multiplication while suitable machine instructions exist to do such a
calculation.  The fix went in with GCC commit 48b2123f6336 ("re PR
target/82981 (unnecessary __multi3 call for mips64r6 linux kernel)").

Adjust our code accordingly, removing build failures such as:

mips64-linux-ld: lib/math/div64.o: in function `mul_u64_add_u64_div_u64':
div64.c:(.text+0x84): undefined reference to `__multi3'

with the GCC versions affected.

Fixes: ebabcf1 ("MIPS: Implement __multi3 for GCC7 MIPS64r6 builds")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202601140146.hMLODc6v-lkp@intel.com/
Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
Cc: stable@vger.kernel.org # v4.15+
Reviewed-by: David Laight <david.laight.linux@gmail.com.
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 39e2a5bf970402a8530a319cf06122e216ba57b8 upstream.

In occ_show_power_1() case 1, the accumulator is divided by
update_tag without checking for zero. If no samples have been
collected yet (e.g. during early boot when the sensor block is
included but hasn't been updated), update_tag is zero, causing
a kernel divide-by-zero crash.

The 2019 fix in commit 211186c ("hwmon: (occ) Fix division by
zero issue") only addressed occ_get_powr_avg() used by
occ_show_power_2() and occ_show_power_a0(). This separate code
path in occ_show_power_1() was missed.

Fix this by reusing the existing occ_get_powr_avg() helper, which
already handles the zero-sample case and uses mul_u64_u32_div()
to multiply before dividing for better precision. Move the helper
above occ_show_power_1() so it is visible at the call site.

Fixes: c10e753 ("hwmon (occ): Add sensor types and versions")
Cc: stable@vger.kernel.org
Signed-off-by: Sanman Pradhan <psanman@juniper.net>
Link: https://lore.kernel.org/r/20260326224510.294619-2-sanman.pradhan@hpe.com
[groeck: Fix alignment problems reported by checkpatch]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
mdionne and others added 20 commits April 18, 2026 10:45
commit 0cd3e3f3f2ec1a45aa559e2c0f3d57fac5eb3c25 upstream.

Peers may only send immediate acks for every 2 UDP packets received.
When sending a jumbogram, it is important to check that there is
sufficient window space to send another same sized jumbogram following
the current one, and request an ack if there isn't.  Failure to do so may
cause the call to stall waiting for an ack until the resend timer fires.

Where jumbograms are in use this causes a very significant drop in
performance.

Fixes: fe24a54 ("rxrpc: Send jumbo DATA packets")
Signed-off-by: Marc Dionne <marc.dionne@auristor.com>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeffrey Altman <jaltman@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-10-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 6331f1b24a3e85465f6454e003a3e6c22005a5c5 upstream.

rxrpc_input_packet_on_conn() can process a to-client packet after the
current client call on the channel has already been torn down.  In that
case chan->call is NULL, rxrpc_try_get_call() returns NULL and there is
no reference to drop.

The client-side implicit-end error path does not account for that and
unconditionally calls rxrpc_put_call().  This turns a protocol error
path into a kernel crash instead of rejecting the packet.

Only drop the call reference if one was actually acquired.  Keep the
existing protocol error handling unchanged.

Fixes: 5e6ef4f ("rxrpc: Make the I/O thread take over the call and local processor work")
Reported-by: Yifan Wu <yifanwucs@gmail.com>
Reported-by: Juefei Pu <tomapufckgml@gmail.com>
Signed-off-by: Douya Le <ldy3087146292@gmail.com>
Co-developed-by: Yuan Tan <tanyuan98@gmail.com>
Signed-off-by: Yuan Tan <tanyuan98@gmail.com>
Suggested-by: Xin Liu <bird@lzu.edu.cn>
Signed-off-by: Ao Zhou <n05ec@lzu.edu.cn>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-11-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit fe4447cd95623b1cfacc15f280aab73a6d7340b2 upstream.

rxkad_decrypt_ticket() decrypts the RXKAD response ticket and then
parses the buffer as plaintext without checking whether
crypto_skcipher_decrypt() succeeded.

A malformed RESPONSE can therefore use a non-block-aligned ticket
length, make the decrypt operation fail, and still drive the ticket
parser with attacker-controlled bytes.

Check the decrypt result and abort the connection with RXKADBADTICKET
when ticket decryption fails.

Fixes: 17926a7 ("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both")
Reported-by: Yifan Wu <yifanwucs@gmail.com>
Reported-by: Juefei Pu <tomapufckgml@gmail.com>
Co-developed-by: Yuan Tan <yuantan098@gmail.com>
Signed-off-by: Yuan Tan <yuantan098@gmail.com>
Suggested-by: Xin Liu <bird@lzu.edu.cn>
Tested-by: Ren Wei <enjou1224z@gmail.com>
Signed-off-by: Yuqi Xu <xuyuqiabc@gmail.com>
Signed-off-by: Ren Wei <n05ec@lzu.edu.cn>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-12-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 3e3138007887504ee9206d0bfb5acb062c600025 upstream.

rxgk_verify_authenticator() copies auth_len bytes into a temporary
buffer and then passes p + auth_len as the parser limit to
rxgk_do_verify_authenticator(). Since p is a __be32 *, that inflates the
parser end pointer by a factor of four and lets malformed RESPONSE
authenticators read past the kmalloc() buffer.

Decoded from the original latest-net reproduction logs with
scripts/decode_stacktrace.sh:

BUG: KASAN: slab-out-of-bounds in rxgk_verify_response()
Call Trace:
 dump_stack_lvl() [lib/dump_stack.c:123]
 print_report() [mm/kasan/report.c:379 mm/kasan/report.c:482]
 kasan_report() [mm/kasan/report.c:597]
 rxgk_verify_response()
   [net/rxrpc/rxgk.c:1103 net/rxrpc/rxgk.c:1167
    net/rxrpc/rxgk.c:1274]
 rxrpc_process_connection()
   [net/rxrpc/conn_event.c:266 net/rxrpc/conn_event.c:364
    net/rxrpc/conn_event.c:386]
 process_one_work() [kernel/workqueue.c:3281]
 worker_thread()
   [kernel/workqueue.c:3353 kernel/workqueue.c:3440]
 kthread() [kernel/kthread.c:436]
 ret_from_fork() [arch/x86/kernel/process.c:164]

Allocated by task 54:
 rxgk_verify_response()
   [include/linux/slab.h:954 net/rxrpc/rxgk.c:1155
    net/rxrpc/rxgk.c:1274]
 rxrpc_process_connection()
   [net/rxrpc/conn_event.c:266 net/rxrpc/conn_event.c:364
    net/rxrpc/conn_event.c:386]

Convert the byte count to __be32 units before constructing the parser
limit.

Fixes: 9d1d2b5 ("rxrpc: rxgk: Implement the yfs-rxgk security class (GSSAPI)")
Signed-off-by: Keenan Dong <keenanat2000@gmail.com>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: Willy Tarreau <w@1wt.eu>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-13-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit a2567217ade970ecc458144b6be469bc015b23e5 upstream.

rxgk_verify_response() decodes auth_len from the packet and is supposed
to verify that it fits in the remaining bytes. The existing check is
inverted, so oversized RESPONSE authenticators are accepted and passed
to rxgk_decrypt_skb(), which can later reach skb_to_sgvec() with an
impossible length and hit BUG_ON(len).

Decoded from the original latest-net reproduction logs with
scripts/decode_stacktrace.sh:

RIP: __skb_to_sgvec()
  [net/core/skbuff.c:5285 (discriminator 1)]
Call Trace:
 skb_to_sgvec() [net/core/skbuff.c:5305]
 rxgk_decrypt_skb() [net/rxrpc/rxgk_common.h:81]
 rxgk_verify_response() [net/rxrpc/rxgk.c:1268]
 rxrpc_process_connection()
   [net/rxrpc/conn_event.c:266 net/rxrpc/conn_event.c:364
    net/rxrpc/conn_event.c:386]
 process_one_work() [kernel/workqueue.c:3281]
 worker_thread()
   [kernel/workqueue.c:3353 kernel/workqueue.c:3440]
 kthread() [kernel/kthread.c:436]
 ret_from_fork() [arch/x86/kernel/process.c:164]

Reject authenticator lengths that exceed the remaining packet payload.

Fixes: 9d1d2b5 ("rxrpc: rxgk: Implement the yfs-rxgk security class (GSSAPI)")
Signed-off-by: Keenan Dong <keenanat2000@gmail.com>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: Willy Tarreau <w@1wt.eu>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-14-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit f125846ee79fcae537a964ce66494e96fa54a6de upstream.

This patch fixes a reference count leak in rxrpc_server_keyring()
by checking if rx->securities is already set.

Fixes: 17926a7 ("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both")
Reported-by: Yifan Wu <yifanwucs@gmail.com>
Reported-by: Juefei Pu <tomapufckgml@gmail.com>
Co-developed-by: Yuan Tan <yuantan098@gmail.com>
Signed-off-by: Yuan Tan <yuantan098@gmail.com>
Suggested-by: Xin Liu <bird@lzu.edu.cn>
Tested-by: Ren Wei <enjou1224z@gmail.com>
Signed-off-by: Luxiao Xu <rakukuip@gmail.com>
Signed-off-by: Ren Wei <n05ec@lzu.edu.cn>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-15-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 2afd86ccbb2082a3c4258aea8c07e5bb6267bc2f upstream.

An AF_RXRPC socket can be both client and server at the same time.  When
sending new calls (ie. it's acting as a client), it uses rx->key to set the
security, and when accepting incoming calls (ie. it's acting as a server),
it uses rx->securities.

setsockopt(RXRPC_SECURITY_KEY) sets rx->key to point to an rxrpc-type key
and setsockopt(RXRPC_SECURITY_KEYRING) sets rx->securities to point to a
keyring of rxrpc_s-type keys.

Now, it should be possible to use both rx->key and rx->securities on the
same socket - but for userspace AF_RXRPC sockets rxrpc_setsockopt()
prevents that.

Fix this by:

 (1) Remove the incorrect check rxrpc_setsockopt(RXRPC_SECURITY_KEYRING)
     makes on rx->key.

 (2) Move the check that rxrpc_setsockopt(RXRPC_SECURITY_KEY) makes on
     rx->key down into rxrpc_request_key().

 (3) Remove rxrpc_request_key()'s check on rx->securities.

This (in combination with a previous patch) pushes the checks down into the
functions that set those pointers and removes the cross-checks that prevent
both key and keyring being set.

Fixes: 17926a7 ("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both")
Closes: https://sashiko.dev/#/patchset/20260401105614.1696001-10-dhowells@redhat.com
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Anderson Nascimento <anderson@allelesecurity.com>
cc: Luxiao Xu <rakukuip@gmail.com>
cc: Yuan Tan <yuantan098@gmail.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-16-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit f93af41b9f5f798823d0d0fb8765c2a936d76270 upstream.

Add error checking for failure of crypto_skcipher_en/decrypt() to various
rxkad function as the crypto functions can fail with ENOMEM at least.

Fixes: 17926a7 ("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both")
Closes: https://sashiko.dev/#/patchset/20260401105614.1696001-10-dhowells@redhat.com
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Jeffrey Altman <jaltman@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-17-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 699e52180f4231c257821c037ed5c99d5eb0edb8 upstream.

In rxgk_verify_response(), there's a potential integer overflow due to
rounding up token_len before checking it, thereby allowing the length check to
be bypassed.

Fix this by checking the unrounded value against len too (len is limited as
the response must fit in a single UDP packet).

Fixes: 9d1d2b5 ("rxrpc: rxgk: Implement the yfs-rxgk security class (GSSAPI)")
Closes: https://sashiko.dev/#/patchset/20260401105614.1696001-10-dhowells@redhat.com
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Jeffrey Altman <jaltman@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-18-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 7e1876caa8363056f58a21d3b31b82c2daf7e608 upstream.

Fix rxgk_verify_response() to clean up the rxgk context it creates.

Fixes: 9d1d2b5 ("rxrpc: rxgk: Implement the yfs-rxgk security class (GSSAPI)")
Closes: https://sashiko.dev/#/patchset/20260401105614.1696001-10-dhowells@redhat.com
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Jeffrey Altman <jaltman@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-19-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit f564af387c8c28238f8ebc13314c589d7ba8475d upstream.

Fix rxgk_do_verify_authenticator() to check the buffer size before checking
the nonce.

Fixes: 9d1d2b5 ("rxrpc: rxgk: Implement the yfs-rxgk security class (GSSAPI)")
Closes: https://sashiko.dev/#/patchset/20260401105614.1696001-10-dhowells@redhat.com
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Jeffrey Altman <jaltman@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-20-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit c43ffdcfdbb5567b1f143556df8a04b4eeea041c upstream.

Only process RESPONSE packets while the service connection is still in
RXRPC_CONN_SERVICE_CHALLENGING. Check that state under state_lock before
running response verification and security initialization, then use a local
secured flag to decide whether to queue the secured-connection work after
the state transition. This keeps duplicate or late RESPONSE packets from
re-running the setup path and removes the unlocked post-transition state
test.

Fixes: 17926a7 ("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both")
Reported-by: Yifan Wu <yifanwucs@gmail.com>
Reported-by: Juefei Pu <tomapufckgml@gmail.com>
Co-developed-by: Yuan Tan <yuantan098@gmail.com>
Signed-off-by: Yuan Tan <yuantan098@gmail.com>
Suggested-by: Xin Liu <bird@lzu.edu.cn>
Signed-off-by: Jie Wang <jiewang2024@lzu.edu.cn>
Signed-off-by: Yang Yang <n05ec@lzu.edu.cn>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Jeffrey Altman <jaltman@auristor.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-21-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit a44ce6aa2efb61fe44f2cfab72bb01544bbca272 upstream.

The AF_RXRPC procfs helpers format local and remote socket addresses into
fixed 50-byte stack buffers with "%pISpc".

That is too small for the longest current-tree IPv6-with-port form the
formatter can produce. In lib/vsprintf.c, the compressed IPv6 path uses a
dotted-quad tail not only for v4mapped addresses, but also for ISATAP
addresses via ipv6_addr_is_isatap().

As a result, a case such as

  [ffff:ffff:ffff:ffff:0:5efe:255.255.255.255]:65535

is possible with the current formatter. That is 50 visible characters, so
51 bytes including the trailing NUL, which does not fit in the existing
char[50] buffers used by net/rxrpc/proc.c.

Size the buffers from the formatter's maximum textual form and switch the
call sites to scnprintf().

Changes since v1:
- correct the changelog to cite the actual maximum current-tree case
  explicitly
- frame the proof around the ISATAP formatting path instead of the earlier
  mapped-v4 example

Fixes: 75b54cb ("rxrpc: Add IPv6 support")
Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: Anderson Nascimento <anderson@allelesecurity.com>
cc: Simon Horman <horms@kernel.org>
cc: linux-afs@lists.infradead.org
cc: stable@kernel.org
Link: https://patch.msgid.link/20260408121252.2249051-22-dhowells@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit 0f42e3f4fe2a58394e37241d02d9ca6ab7b7d516 upstream.

SKB_SMALL_HEAD_CACHE_SIZE is intentionally set to a non-power-of-2
value (e.g. 704 on x86_64) to avoid collisions with generic kmalloc
bucket sizes. This ensures that skb_kfree_head() can reliably use
skb_end_offset to distinguish skb heads allocated from
skb_small_head_cache vs. generic kmalloc caches.

However, when KFENCE is enabled, kfence_ksize() returns the exact
requested allocation size instead of the slab bucket size. If a caller
(e.g. bpf_test_init) allocates skb head data via kzalloc() and the
requested size happens to equal SKB_SMALL_HEAD_CACHE_SIZE, then
slab_build_skb() -> ksize() returns that exact value. After subtracting
skb_shared_info overhead, skb_end_offset ends up matching
SKB_SMALL_HEAD_HEADROOM, causing skb_kfree_head() to incorrectly free
the object to skb_small_head_cache instead of back to the original
kmalloc cache, resulting in a slab cross-cache free:

  kmem_cache_free(skbuff_small_head): Wrong slab cache. Expected
  skbuff_small_head but got kmalloc-1k

Fix this by always calling kfree(head) in skb_kfree_head(). This keeps
the free path generic and avoids allocator-specific misclassification
for KFENCE objects.

Fixes: bf9f1ba ("net: add dedicated kmem_cache for typical/small skb->head")
Reported-by: Antonius <antonius@bluedragonsec.com>
Closes: https://lore.kernel.org/netdev/CAK8a0jxC5L5N7hq-DT2_NhUyjBxrPocoiDazzsBk4TGgT1r4-A@mail.gmail.com/
Signed-off-by: Jiayuan Chen <jiayuan.chen@linux.dev>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20260403014517.142550-1-jiayuan.chen@linux.dev
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
commit e55d98e7756135f32150b9b8f75d580d0d4b2dd3 upstream.

Zen1's hardware divider can leave, under certain circumstances, partial
results from previous operations.  Those results can be leaked by
another, attacker thread.

Fix that with a chicken bit.

Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20260413155731.019638460@linuxfoundation.org
Tested-by: Brett A C Sheffield <bacs@librecast.net>
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Tested-by: Wentao Guan <guanwentao@uniontech.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Pavel Machek (CIP) <pavel@nabladev.com>
Tested-by: Ron Economos <re@w6rz.net>
Tested-by: Shuah Khan <skhan@linuxfoundation.org>
Tested-by: Miguel Ojeda <ojeda@kernel.org>
Tested-by: Peter Schneider <pschneider1968@googlemail.com>
Tested-by: Barry K. Nathan <barryn@pobox.com>
Tested-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>
Tested-by: Mark Brown <broonie@kernel.org>
Tested-by: Dileep Malepu <dileep.debian@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This is the 6.18.23 stable release
Import debian_amd64.config from the Debian
linux-config-6.18_6.18.15-1~bpo13+1_amd64.deb package, which is the
latest 6.18 config available in Debian backports.
Link: https://ftp.debian.org/debian/pool/main/l/linux/

Signed-off-by: Ameer Hamza <ahamza@ixsystems.com>
Signed-off-by: Ameer Hamza <ahamza@ixsystems.com>
NAS-140735 / 27.0.0-BETA.1 / Update Linux kernel to v6.18.23
@bugclerk
Copy link
Copy Markdown
Author

Automatic cherry-pick failed. Please resolve conflicts by running:

git cherry-pick -x 87573883c30f1a8555ff720836bb6ea231058539
git cherry-pick -x e435a30ca6fe14c9611b1fc731c98a6d28410247
git cherry-pick -x e1425ff578c4a4b83654402071de4413af71e2ad
git cherry-pick -x 50392cdfe95e0cd40b03ed95b50d3d53be3fa624
git cherry-pick -x 1200f4240c07d4b507eebb3a7577ba1712fd3b7b
git cherry-pick -x f0e441be08a2eab10b2d06fccfa267ee599dd6b3
git cherry-pick -x 20e2418b98369e9b1977e043661b85ee1037b675
git cherry-pick -x d8388614de613c28eeb659c10115060a83739924
git cherry-pick -x dd90880eb5ec5442b37eb2b95688f4a63f4883e3
git cherry-pick -x ce47541f5c4088efaf2b79c203ffdcdfff9596cf
git cherry-pick -x 10c13c111d0d7f8e101c742feff264fc98e3f9f7
git cherry-pick -x b49bf41b4114842addf1f609c1a30c2f5e8925b8
git cherry-pick -x 1933249263c3a98df79992f61a566476e4163bcc
git cherry-pick -x 3afa2e67f3523a980a2f90fd63c22322ac2b9ce0
git cherry-pick -x 57698f184e1afbe054b3cd30e2c43a67c11d7f5e
git cherry-pick -x 682b5fd115689885178af43f77ac642943774c97
git cherry-pick -x 2e8194b4fdee791f7fa0d8a872a95143946b10d4
git cherry-pick -x c314b405dcc4d8b9041124f928f81715d6328bec
git cherry-pick -x 061ee71ac6b03c9f8432fe49538c3682bfcf4cf3
git cherry-pick -x fa14e0e19820b1bbdb42185c9c4efa950bcffef9
git cherry-pick -x aba0aea354015794e8312dd7efe726967e58aefe
git cherry-pick -x 075ea208c648cc2bcd616295b711d3637c61de45
git cherry-pick -x 247e1e7e25c8f9172eed5c5911d2595c3355a9bc
git cherry-pick -x 1010390094fa27614dd0966261c9edd0a54bc50a
git cherry-pick -x 243d55bd3f08cb15eee9d63f4716d4d4cdd760f5
git cherry-pick -x 16062d6830a7fde8009969aa980a4555d76e546b
git cherry-pick -x 1e3e98596c2769721ade0418434852fb3af4849a
git cherry-pick -x 115a4c8df909fdc6ede3ec363028db43783095ba
git cherry-pick -x cae26eff1b56d78bed7873cf3e60a2b1bdd4da6c
git cherry-pick -x 2b655a9176442d2a9a8b6b45df4a657cb225223b
git cherry-pick -x 7d14b49de8fcccbead88349b3560313b2e936f63
git cherry-pick -x d9bf25ef3d30f359a91cb02266ebb03c58d85268
git cherry-pick -x 054ea2f12beb4278ef832b784ded2edafd9d5da1
git cherry-pick -x 014c6d27878d3883f7bb065610768fd021de1a96
git cherry-pick -x 64bc0219e4d8ef339ef3cf683c62515012998dad
git cherry-pick -x 30e2275b3469f9cdd5810b471cbfa9398a584348
git cherry-pick -x 5a17678b74197d24611ea2e5414924f4850c83af
git cherry-pick -x df4979eef358c28ea27a0901ee9627e3df80fdd1
git cherry-pick -x 86e926b108880c0109b8635e459450447156aeb7
git cherry-pick -x d0fd0bea847526dbe3d862c01e98a1617538565d
git cherry-pick -x 1e130cf9cd172c684ff471d9cd8bccf06db64d88
git cherry-pick -x 3543005a42d7e8e12b21897ef6798541bf7cbcd3
git cherry-pick -x 77c918eaa4c916751769242567407f61c6af142a
git cherry-pick -x 2b8ae82d85d75347984297ed60d5005622992f6b
git cherry-pick -x 70fd81b9c4bf35fc4d562439d47bdfaef6deb930
git cherry-pick -x 42e4fbeb853a6899ac4c618bd0da485c3c596312
git cherry-pick -x 8ea8dc0d62e3a3731fd494fa392f5e120bdd0dd8
git cherry-pick -x 33e646804070c8939c1509b11a79a7a2671e4b04
git cherry-pick -x beba26c55f4e411b0163b08840d98ee45497844f
git cherry-pick -x 00f0cc75356b0b8d3798990603d1364886701167
git cherry-pick -x 86620132e9c4cde336a7ce9ddaf142875b245fb5
git cherry-pick -x d0a6b8d186dab99cbfb43191d0651b3b8e991270
git cherry-pick -x 6afa581aed0f1e7d77d8ae9e65b7836a1583470e
git cherry-pick -x 25e04a8291f4201fd5501bb1e4884e61896db692
git cherry-pick -x 3707af316f86d319f72f1ac29e812e15832231d8
git cherry-pick -x 87180f65f90da98a3ea125faafe4f418b8d63d37
git cherry-pick -x 5f482fd456bc543e58e40a6748f23fd03b43fc66
git cherry-pick -x 85981790ea35d29cbccae482d469c8f044db88d5
git cherry-pick -x 6c4591e71668142f47bc32772427a86438749651
git cherry-pick -x b6d6f6e2e329fb4b8ac017832058e61a49ee7dec
git cherry-pick -x d7161e8b6211a13da89797df8e23388e9cfbd214
git cherry-pick -x 2ed3d9bc86b66edc547e0638f1ec90685faf409c
git cherry-pick -x b0e1fec0a0d07c506e1c6d5ec52c23f3834970cd
git cherry-pick -x 0ad74c370e8de8ab7a72d07159df851c891ccdf0
git cherry-pick -x 04d8f0a785dc0a859902a87d1adb1d98a3c4ae14
git cherry-pick -x d6e078c63409483a731324bbd1c26d365b4940a6
git cherry-pick -x 7f14b52a81f9403ae7f3fe870f95644946d964f4
git cherry-pick -x ac1233397f4cfe55d71f6aa459b42c256c951531
git cherry-pick -x 3a8e68d65a443de05061818823037931674740e0
git cherry-pick -x cc3de12a5612ee25df7fb549cb7b3e4cc8bfaf9c
git cherry-pick -x fefd0bceac15faf2fbaf423c1d6e81412658ed5f
git cherry-pick -x ffacfe07177d37cbf6548a4c40f0e7cb96f024f0
git cherry-pick -x 21f942879f86108b300a23683e67483f8c358fc7
git cherry-pick -x 882bdb01ff12cdf9580c26b0cee7e6c412c32abd
git cherry-pick -x 38c28fe25611099230f0965c925499bfcf46a795
git cherry-pick -x 977b632db51d231dec0bc571089a5c2402674139
git cherry-pick -x 65ff09f48b0e72e4049096a989723406aabcf091
git cherry-pick -x 34af2da733f4e413524e4532bfd0a24a9facd689
git cherry-pick -x 6288b46e5ac6817327b4e7803a219be022016769
git cherry-pick -x 61937f686290494998236c680ce0836b8dd63a3f
git cherry-pick -x 701903fcac4a40c0e802afbe230a781313bc2ad9
git cherry-pick -x 390536cc6af4ca5566bc3bf1f8b704700380cd2c
git cherry-pick -x 5a85599ca4d2584d89dc69f4fc49303b75a42338
git cherry-pick -x 09f78265a93d496f84598e5cf7e5d655953c2ad0
git cherry-pick -x f43f77499ec8de0af0b54d812c5d37f0120aeec1
git cherry-pick -x 5da684c24e8b480753b9ab5ca3ab2d575b298bd9
git cherry-pick -x 837392a38445729c22e03d3abcf33f07763efd85
git cherry-pick -x e92f5ee730653aa387ffb6041983a51d19a27aed
git cherry-pick -x 34c8b3a91bdfbe4573650b4cd750ef639101fdc5
git cherry-pick -x b89c026227712c367950bbae055a5b31073d3b30
git cherry-pick -x 43c68a2c7cc35b7c2a83c285cb4ad3d472b8caa2
git cherry-pick -x a47ae40339c1048f519df33ff8840731720f57cb
git cherry-pick -x eae19cab44204537f79146f15a51811b13227c38
git cherry-pick -x d266498da90d34a76ee07a6072a651e431bf661d
git cherry-pick -x f5526abe978fdde35e76f97c7e5d667262389d6a
git cherry-pick -x a11f022db7d857d4bbaf140c2517833e1c9d65b4
git cherry-pick -x 586222c37d4027dbf60a604fbe820184fee7c1c9
git cherry-pick -x 5a8f2e95f9a191ff387b0e184d3e45e06b3a84f9
git cherry-pick -x 0c94b84b6ef5113b83bbb758fad304e47c65bd52
git cherry-pick -x 784ed4abded1ca4b525fa4cade8b02f8c5d2a087
git cherry-pick -x 68ca0eea0af02bed36c5e2c13e9fa1647c31a7d4
git cherry-pick -x 554d005d5161108cd3ee8108ed990f5a8dca2d8c
git cherry-pick -x 891d790fdb5c96c6e1d2841e06ee6c360f2d1288
git cherry-pick -x bbb6c37c7a483c912ff0221ee92eaa9ca687b045
git cherry-pick -x e07237df8538b0ae98dce112e4f6db093d767f80
git cherry-pick -x 6562290225c197e2e193a53de2a517815288dcd1
git cherry-pick -x 3aea268b6d5cde3b087df9eeecc3bc620aa09513
git cherry-pick -x eddfce70a6f3107d1679b0c2fcbeb96b593bd679
git cherry-pick -x 8351d18989c8642fc53e2e12d94e42314a39b078
git cherry-pick -x 5dff799c677152dde963c3917bacd9127b03e145
git cherry-pick -x 65a5847e1a6c9f9962f5991a467b5c7981a15c35
git cherry-pick -x d2703b4f8fb7cc6f0dfdb2dc2359cc46189e7357
git cherry-pick -x 72c43eb2e334febe93018cfb68ae828f55c6e49e
git cherry-pick -x 70b6e2e015030ec8c132112a918a19c44041910a
git cherry-pick -x f0cf9c7b7c281956cc0dec163132cd96f76e1d60
git cherry-pick -x 2dbe93f344f10b432b95a23304006be805c097a1
git cherry-pick -x c4c7219e93319bba9ba0765dee597784c78f63c5
git cherry-pick -x 3a164f640953cc982804746e772d379171aff5c6
git cherry-pick -x acea446ba4f42bece77ca7e940510b231fd03a98
git cherry-pick -x 15f0c2d9eebc1a5cbdb4a515e2aa5ed119fbc6ee
git cherry-pick -x cd9c6fcd1cf13048dce053dedb7dcb0bc8fbb9f8
git cherry-pick -x efbd9441f1e769a7aae1813d497cec09cbdff031
git cherry-pick -x 5687a09776069bd915560021c9728ca528440128
git cherry-pick -x cc300853b9ebab5afc9e70a485ac6cc0b914caf2
git cherry-pick -x f4e608fe12b7ac6a4a57176ab0296bb5a110a078
git cherry-pick -x 7d581e2534693910872ee1553a27be47f487a7f7
git cherry-pick -x 63dc317dfcd3faffd082c2bf3080f9ad070273da
git cherry-pick -x 6ad77458637b78ec655e3da5f112c862e6690a9d
git cherry-pick -x a36e5e800b9c93e3e1ffa42f34d38b36775dbcee
git cherry-pick -x 1aa9356881ee4ed414bf72d0c56d915492cb5345
git cherry-pick -x 3d436670b47415da042452618fb5d8e317ab095f
git cherry-pick -x 446f1842cda929c40d4697722bfdcfb334bc9692
git cherry-pick -x 4e34f3f491fd731809b57ddb5329ec763bd39553
git cherry-pick -x 4ccdccff8febc5456aff684627f9a4c5c83b9346
git cherry-pick -x 9cbc4f109bb216623894d8819fb930210ed34b21
git cherry-pick -x 18ada801899f2b13ef0ceff42427ad980a41e619
git cherry-pick -x 5d1bb391ceeebb28327703dd07af8c6324af298f
git cherry-pick -x 8e5eb1d6e6a3d7bbea9c92132d0cda5793176426
git cherry-pick -x ab5f05ae96fcd97b706359a74d0b7383fc2607c6
git cherry-pick -x c1d72e846cb4ecbe6643965e7d67ad1c2ff816fd
git cherry-pick -x 10bbeed03e1db38a7378dff508b019161c172494
git cherry-pick -x e367143b520ae735e986bcbeeefca00af534f1a0
git cherry-pick -x 5bbadf60b121065ffb267ec92018607b9c1c7524
git cherry-pick -x ba9be472a438ea348f0fffaaebf541960ee643db
git cherry-pick -x 24ce568f7553a55404cddf8f0fca2a7c0ea9451c
git cherry-pick -x 5f4061f8225d18695e5afe9bbf1cb7bd673d7872
git cherry-pick -x a98b78116a27e2a57b696b569b2cb431c95cf9b6
git cherry-pick -x ce54802fe6bb78eb0feffc66fed6a45d41ffc3ab
git cherry-pick -x a836054ea81014117ec6b73529a21626a9e1f829
git cherry-pick -x cef18bb87a6c261e146e1b23fc88757860fe9d81
git cherry-pick -x 9e36ceb5ca431e10de249a42d8ebcd67ea7dfa26
git cherry-pick -x d5776a31c16579935855c631bce09eb07dc7da23
git cherry-pick -x 5e7b2cc8fae9ec2a5bc53311191d2faaff75a4b5
git cherry-pick -x f2b09e8b594ce61b8ff508ea1fb594b3b24ec6d3
git cherry-pick -x f4786c34216a702d108e53fc890bd21e547aabc9
git cherry-pick -x e360d15fcb1e819eef49e3d4434d8050542eed16
git cherry-pick -x 6c55714c931051cd7f4839c19ce0867179fd22fe
git cherry-pick -x a8c26800e0220e1550af012f5a20e50f5c78864d
git cherry-pick -x 130c991e6aad032f8c1449afa97dcdde91e722fb
git cherry-pick -x 96a95b6d9e6dca5d338e58991e02e9c1efdaf2fe
git cherry-pick -x 15fa9ead4d5e6b6b9c794e84144146c917f2cb62
git cherry-pick -x fb56de5d99218de49d5d43ef3a99e062ecd0f9a1
git cherry-pick -x 1e09dfbb4f5d20ee111f92325a00f85778a5f328
git cherry-pick -x 6c098142b37015610ad9de403e670b5956f7eb13
git cherry-pick -x 6c600fc0e99180c7a1b91c93e359009be8b4cfc2
git cherry-pick -x ccc6a2241a49f68d8656ab1e10df377acfe2c5b4
git cherry-pick -x d8b281165a86041bb40e055eb79f735826d0df1b
git cherry-pick -x 2124a61e6e2b0359ad27d782e23abb699b2f26e0
git cherry-pick -x 450e6a685d0cad95b15f8af152057bd0bf79f50b
git cherry-pick -x 1e211179f1d9273b6cfd0b30d6983dc1d626736b
git cherry-pick -x 33120558237c7e13db3c39f09fd712431e455005
git cherry-pick -x 72cf49ad50c16270b52bc512d9c2df5743922968
git cherry-pick -x 2802ba3981f15ed8e89fe86544aad2f43acd17b7
git cherry-pick -x b42aca3660dc2627a29a38131597ca610dc451f9
git cherry-pick -x fbdb43f6bb2a15ed382d6eb0ef82c8b07b0d47bb
git cherry-pick -x 0133aa1a28af222d124f7c289ac9abdcea5220ac
git cherry-pick -x 688c1b491c35d43fac013d5aa5490ae4c04a76a3
git cherry-pick -x b1dfd6b27df35ef4f87825aa5f607378d23ff0f2
git cherry-pick -x 0f451b43c88bf2b9c038b414be580efee42e031b
git cherry-pick -x 1b6f13f626665cac67ba5a012765427680518711
git cherry-pick -x b27fa888e4a426a3bcf6f6ab24701d888d9bf5aa
git cherry-pick -x c4e1eff4606c7bf8c3289051f63f08ca65653ae2
git cherry-pick -x fecceacbaf48219519c50d692d05de00e4689b7b
git cherry-pick -x aee881c21b576159c7a814f39604308895affcaa
git cherry-pick -x 3b31b15230b01f77d52760add62c4c6b7f7a8504
git cherry-pick -x a4115c2abab3677d5ed81ea7738ead89fb6ccd9f
git cherry-pick -x c82a3c9d9fb30ef0956391a605235c0e27120b66
git cherry-pick -x f0a0a6a8c1cc20353d018a6220701074f0dea24e
git cherry-pick -x 083c5a417dee0a60e793809e5be2387a0cfdbaf6
git cherry-pick -x 21ae2cda66a55c759607bbf1d23cbaa42019d2de
git cherry-pick -x de6c1dc3c7d01a152607e6fcecee4d5288283f10
git cherry-pick -x 206121294b9cf27f0589857f80d64f87e496ffb2
git cherry-pick -x 87ce8ae511962e105bcb3534944208c6a9471ed9
git cherry-pick -x 5d70eb25b41e9b010828cd12818b06a0c3b04412
git cherry-pick -x 60f462cd2716d86bd2174f9d5e035c9278f30480
git cherry-pick -x 4dee4c0688443aaf5bbec74aa203c851d1d53c35
git cherry-pick -x 2af8b200cae3fdd0e917ecc2753b28bb40c876c1
git cherry-pick -x de9aa7e89b98157d2650f25691e40711b8404151
git cherry-pick -x 82e8174d1d0e5a6be49d33aedfa83327097f20b9
git cherry-pick -x e44919669f07b8f113ad49a248b44ca4f119bc94
git cherry-pick -x 4700471775746058c962ded6e659bf908fd76e13
git cherry-pick -x 49c00ae87230708cc4b39e718fab05013593b8ed
git cherry-pick -x b9dadf026a9fb681ed32a0646adc10ab485bf3b1
git cherry-pick -x 447f8870b484f6596d7a7130e72bd0a3f1e037bb
git cherry-pick -x c83a282615d8f7ba28cebddd54600b419d562d82
git cherry-pick -x ea7468f61be033f4e18b95f2912010ed1d175d75
git cherry-pick -x 9fdece45f6e097eaea0e721057ad7ee5c01fc2b2
git cherry-pick -x 6fca757c20396dc2e604dcc61922264e9e3dc803
git cherry-pick -x 576543bedd616254032d4ebe54a90076f9e31740
git cherry-pick -x e02c974fc331f04b5ba2007d4bc6862df8a43148
git cherry-pick -x d6e9bef3313a3bff4d964a0408a8ec7e8d0b6c3f
git cherry-pick -x 214ceaa8a3a24e2d9bcc343e3f20f4244124b9ec
git cherry-pick -x b5dcb41ba891b55157006cac79825c78a32b409e
git cherry-pick -x 22e1ee9f22b5c3bb702bb6d4167d770002a85b2b
git cherry-pick -x 92a673019943770930e2a8bfd52e1aad47a1fc1f
git cherry-pick -x 862cb78fb2c984af7ed94aea90bbc115d8ebd815
git cherry-pick -x d5f76f812d2c0ea6dd651b0586be49e85ecca085
git cherry-pick -x 3bb18ed3b2f6a9659c5cf05809dbde3225944cba
git cherry-pick -x 3be718f659683ad89fad6f1eb66bee99727cae64
git cherry-pick -x 3e04596cba8a86cbff9c3f4bf0a524a3a488773c
git cherry-pick -x 9132b1a7bf83b4a8042fffbc99d075b727a16742
git cherry-pick -x 86303a1da93f6ecdd0792330a71c71e20aeef718
git cherry-pick -x 2e6ef713b1598f6acd7f302fa6b12b6731c89914
git cherry-pick -x 8b353f5f138573b50dd50bdaf1d822c77b0c4cfe
git cherry-pick -x 8299ca146489664e3c0c90a3b8900d8335b1ede4
git cherry-pick -x 22f6258e7b31dba9bf88dce4e3ee7f0f20072e60
git cherry-pick -x 7875f3d9777bd4e9892c4db830571ab8ac2044c0
git cherry-pick -x beee051f259acd286fed64c32c2b31e6f5097eb5
git cherry-pick -x 8ee931c3cd97f1c42b4fbf057f04b9dae45dfb7a
git cherry-pick -x 03d1c51decaeb8700746ef79c50f4ebb6f1d8139
git cherry-pick -x bf4d6e4a6856eedeb7f66eb91224115bfff4e2cb
git cherry-pick -x 1f864d9daaf622aeaa774404fd51e7d6a435b046
git cherry-pick -x 4b5e8365515f4409de7d3b92a439154ee4f90f6d
git cherry-pick -x 794586789800b16dcbe235452494f4223ac80413
git cherry-pick -x d0035e634dae83237ab7f5681eb52b2f65d0ceb8
git cherry-pick -x db297c78ce537c9ac96f0eda9b25ad72c8caefa9
git cherry-pick -x 2d64618ea846d8d033477311f805ca487d6a6696
git cherry-pick -x ad17f07e95e6e8505e2153e5b391f0d27eacce25
git cherry-pick -x 47a33eea6d5145d53e42315381ef28286c2218fb
git cherry-pick -x b2a49144defcb9df0132dda98e603eacecfa7c35
git cherry-pick -x ad3805b522f678599940ced1a035bc63a0e4a865
git cherry-pick -x e600c4aa6b6c60a27c9f6d68ad2be7ebe2f78cc7

If the original PR was merged via a squash, you can just cherry-pick the squashed commit:

git reset --hard HEAD~8
git cherry-pick -x da9078140c64e158fd6b4c8e3f6225cd2cdbeabf

@bugclerk
Copy link
Copy Markdown
Author

@ixhamza ixhamza force-pushed the NAS-140735-26.0.0-BETA.2 branch from 0ba313e to da90781 Compare April 21, 2026 12:30
@ixhamza ixhamza marked this pull request as ready for review April 21, 2026 12:31
@yocalebo yocalebo merged commit a11e1e8 into stable/26 Apr 21, 2026
9 checks passed
@yocalebo yocalebo deleted the NAS-140735-26.0.0-BETA.2 branch April 21, 2026 13:28
@bugclerk
Copy link
Copy Markdown
Author

This PR has been merged and conversations have been locked.
If you would like to discuss more about this issue please use our forums or raise a Jira ticket.

@truenas truenas locked as resolved and limited conversation to collaborators Apr 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.