← Back to archive

Daily update · Sep 5–6, 2026

NVMe/TCP security fixes, UFS and btrfs improvements, LoongArch hardening

A batch of mainline kernel fixes targets NVMe/TCP memory corruption, UFS performance, btrfs compression hangs, and LoongArch KVM security.

In brief

Today's mainline kernel updates focus heavily on NVMe/TCP security and reliability, storage improvements for UFS and zoned devices, btrfs fixes, and LoongArch-specific hardening.

NVMe

Reject NVMe/TCP data packets for write commands

The NVMe/TCP driver now validates the data direction of C2HData PDUs and rejects data sent in response to write commands.

Why it matters: Prevents a malicious or buggy NVMe controller from triggering a kernel warning that can panic systems with panic_on_warn.

f83af377c148

Fix out-of-bounds write in NVMe-over-TCP target

The NVMe target's TCP receive path did not bound the PDU payload length against the fixed 128-byte buffer, so a second ICReq with a header digest can write 4 bytes past the end. This is reachable by a remote peer.

Why it matters: Prevents a remote attacker from corrupting kernel memory on systems exposing an NVMe/TCP target.

14cc5a7e7773

Reject unsolicited data PDUs in NVMe-over-TCP target

The NVMe-over-TCP target accepted H2CData PDUs without checking that the target had solicited data with an R2T, letting a remote host complete a write command early and trigger double completion.

Why it matters: Prevents remote NVMe/TCP peers from causing double completions and memory corruption on the target.

db62b35cbca0

Fix NVMe/TCP TLS deadlock by moving sends to workqueue

The inline send path for NVMe/TCP with TLS can trigger circular locking because the block layer holds srcu while the kTLS software path takes tx_lock; TLS queues now defer sends to the workqueue.

Why it matters: Avoids lockdep warnings and potential deadlock for NVMe/TCP users with TLS enabled.

08acb54b063a

Fix use-after-free in NVMe target authentication teardown

The NVMe target cancelled delayed authentication expiry work without waiting if it was already running, so SQ teardown could free the queue while the callback still accessed it; a synchronous drain is now used during teardown.

Why it matters: Prevents a rare use-after-free crash in NVMe target setups using in-band authentication.

eaa948c0e19b

Print NVMe namespace IDs as unsigned values

NVMe namespace IDs are now printed with %u instead of %d in logs and sysfs, so IDs above 2^31 no longer appear negative.

Why it matters: Makes NVMe namespace identification and scripting less confusing for devices with high or sparse NSIDs.

b2d8f2a37231

Fix soft lockup when scanning sparse NVMe namespace IDs

NVMe scanning now removes stale namespaces by range instead of iterating one by one through every NSID in a gap.

Why it matters: Prevents kernel soft lockups on systems with NVMe targets that report widely spaced namespace IDs.

4ed7f3d7d435

Block and storage

Improve sequential read performance on Qualcomm UFS storage

The Qualcomm UFS driver raises the devfreq down-differential threshold from 5% to 65%, reducing overly aggressive clock downscaling during sequential reads.

Why it matters: Qualcomm-based phones and devices should see more consistent sequential read throughput.

b2ededcb271b

Enable Intel UFS 4.0 Gear5 and MCQ support

Adds link adaptation setup for reliable HS-Gear5 operation and wires up the register blocks needed for Multiple Circular Queues on Intel UFS 4.0 controllers.

Why it matters: Intel UFS 4.0 SSDs can now use higher link speeds and multi-queue I/O, improving performance and reliability.

ef675ea16845c46cc9cee39b

Stop partition scanning on zoned block devices

Zoned disks now set GENHD_FL_NO_PART, so the kernel no longer scans partition tables on them.

Why it matters: Avoids read operations that can hit offline zones on SMR/ZNS drives and eliminates misleading partition warnings.

3f9c7a108c0e

Fix direct I/O alignment handling for loop devices

Loop and zloop drivers now fall back to block-device limits when the backing file reports no valid direct I/O alignment, and cap unreasonably large alignment values.

Why it matters: Prevents kernel warnings and potential misbehavior when using loop devices with filesystems that have large block sizes or lack direct I/O support.

e52349a5ea6a

Filesystems

Restore security xattr listing on sysfs files

kernfs listxattr now includes security xattrs such as SELinux labels even when no inode attributes are allocated.

Why it matters: Fixes SELinux and other security tooling that needs to enumerate labels on sysfs entries.

7b15d6cf25e6

Stop chattr from changing btrfs compression algorithm

btrfs now preserves the per-file compression property when unrelated inode flags are changed, instead of resetting it to the mount default.

Why it matters: Users no longer lose their chosen btrfs compression setting when using chattr for other flags.

e8a0095c7df1

Fix btrfs zstd compression hang

A lost-wakeup bug in the btrfs zstd workspace pool could leave writers sleeping forever even when a workspace became available.

Why it matters: Prevents rare but severe hangs on btrfs filesystems using zstd compression under memory pressure.

2acb9f3d1cc8

Security hardening

Prevent write upgrade on read-only ublk mmaps

The ublk driver now clears VM_MAYWRITE on read-only command-buffer mappings, so mprotect cannot make them writable.

Why it matters: Closes a security issue where an unprivileged ublk daemon could corrupt kernel-written I/O descriptors.

6e2b571b0a54

Fix io_uring SCSI passthrough buffer overruns

The SCSI bsg passthrough path now caps sense-data copies to the user buffer size and closes a time-of-check/time-of-use race on the shared SQE.

Why it matters: Prevents userspace from overflowing kernel command buffers or overrunning response buffers when using io_uring SCSI passthrough.

ece06de726734b3c5965fca9

LoongArch

Validate MSI data in LoongArch KVM to prevent kernel memory corruption

LoongArch KVM passed userspace-supplied MSI data directly into EIOINTC bitmaps without validating it against EIOINTC_IRQS; values >= 256 index past the end of kernel arrays.

Why it matters: Prevents any process with a VM file descriptor from corrupting host kernel memory on LoongArch KVM systems.

501514d6ebd2

Fix LoongArch kretprobe corruption when tasks migrate CPUs

LoongArch's rethook trampoline saved and restored the per-CPU base register around a handler that can preempt; if the task migrated, the stale register poisoned the new CPU's per-CPU data. The trampoline no longer saves/restores it.

Why it matters: Prevents scheduler, timer, and RCU corruption on LoongArch under kretprobe-heavy workloads.

c3f2feace5e4

Fix preempt count underflow from userspace breakpoints on LoongArch

LoongArch uses break 11 for kprobes, but userspace can execute the same instruction; the kprobe handler then calls preempt_enable without a matching preempt_disable, underflowing the task's preempt count.

Why it matters: Fixes incorrect in_interrupt() state and socket cgroup attribution; unprivileged userspace can trigger the bug on LoongArch.

72ce4b24676e

Source commits82 entries +
11300f8ddee3

scsi: sg: Report request-table problems when any status is set

Xu Rao · Jul 6, 2026 · 1 files

d5869dae5080

scsi: target: iscsi: Fix hang for aborted WRITE_PENDING commands

Maurizio Lombardi · Jul 17, 2026 · 1 files

f4825922d2fb

scsi: target: iscsi: Reserve a terminator byte for the login payload

Sujal Tuladhar · Aug 1, 2026 · 1 files

40fe154ba049

btrfs: clean up target device if block group marking fails

Guanghui Yang · Aug 8, 2026 · 1 files

d0285dfbc3b4

btrfs: send: fix lost error return value in will_overwrite_ref()

Avi Weiss · Aug 10, 2026 · 1 files

c93b3c43df56

btrfs: detach failed sprout device from transaction update list

Guanghui Yang · Aug 10, 2026 · 1 files

e0b54613aabe

btrfs: restore active device pointers after failed sprout

Guanghui Yang · Aug 10, 2026 · 1 files

e52349a5ea6a

loop, zloop: fix dma_alignment for large or unreported limits

Keith Busch · Aug 10, 2026 · 2 files

0c1032c8c3e9

btrfs: tests: do not touch page cache if root/inode allocation failed

Qu Wenruo · Aug 11, 2026 · 1 files

58e7c13c8f04

nvme: add opcode filtering for fault injection

Mohamed Khalfella · Aug 11, 2026 · 3 files

dba9e2181ca5

scsi: mpi3mr: Fix NULL pointer dereference in mpi3mr_sas_port_add()

Milan P. Gandhi · Aug 12, 2026 · 1 files

419d129f970a

scsi: mpi3mr: Fix target device refcount leak in mpi3mr_sas_port_add()

Milan P. Gandhi · Aug 12, 2026 · 1 files

fb1ed67788e2

nvmet-rdma: fix queue leak when connect backlog is exceeded

Xixin Liu · Aug 13, 2026 · 1 files

afdee49a1b88

nvme-fabrics: fix DHCHAP secret leak on parse failure

Xu Rao · Aug 13, 2026 · 1 files

e8a0095c7df1

btrfs: preserve the compression property when other inode flags change

Sam Ho · Aug 14, 2026 · 1 files

56e6279266f6

nvme-fc: fix double free of fabrics options when nvme_add_ctrl() fails

Niklas Cassel · Aug 14, 2026 · 1 files

33ce0aa4c576

btrfs: scrub: report the failing sector's address, not the stripe base

James C. Owens · Aug 14, 2026 · 1 files

14cc5a7e7773

nvmet-tcp: fix out-of-bounds write when receiving an over-long PDU

Shivam Kumar · Aug 14, 2026 · 1 files

ef248d5de446

nvme: add missing SRCU grace period in error path

Tristan Madani · Aug 15, 2026 · 1 files

a8813a923f9e

btrfs: fix transaction use-after-free in raid stripe insertion

Shuangpeng Bai · Aug 17, 2026 · 1 files

afbe73778338

btrfs: fix the possible bioc_list memory leak during error

Qu Wenruo · Aug 17, 2026 · 3 files

a03fa6518454

btrfs: return proper negative error code for update_raid_extent_item()

Qu Wenruo · Aug 17, 2026 · 1 files

ece06de72673

scsi: bsg: Cap io_uring sense copy to max_response_len

Yang Xiuwei · Aug 17, 2026 · 1 files

4b3c5965fca9

scsi: bsg: Fix TOCTOU in io_uring passthrough command setup

Rahul Chandelkar · Aug 17, 2026 · 1 files

0853dc4f2678

btrfs: send: reject extents for non-regular inodes

ZhengYuan Huang · Aug 17, 2026 · 1 files

3838e80fcfb3

nvme: skip the zoned limits update if the zone info query failed

Chao Shi · Aug 17, 2026 · 1 files

c1888444dc28

nvme: set ns->head in nvme_alloc_ns_head

Kanchan Joshi · Aug 18, 2026 · 1 files

56e1c6bbe4bb

nvme: fix racy access to FDP placement id array

Kanchan Joshi · Aug 18, 2026 · 2 files

c428b763f29b

btrfs: zoned: propagate do_zone_finish() error in btrfs_zone_finish_endio()

Johannes Thumshirn · Aug 18, 2026 · 1 files

f83af377c148

nvme-tcp: check the data direction of a C2HData PDU

Yehyeong Lee · Aug 18, 2026 · 1 files

ef675ea16845

scsi: ufs: ufs-pci: Add support for Intel UFS 4.0 HS-Gear5

sangram kumar yerra · Aug 18, 2026 · 1 files

c46cc9cee39b

scsi: ufs: ufs-pci: Add MCQ support for Intel UFS 4.0 controllers

sangram kumar yerra · Aug 18, 2026 · 1 files

6db237eb5167

firmware_loader: Change contact for sysfs nodes

Russ Weight · Aug 18, 2026 · 1 files

0d3e690c1129

CREDITS: Add CREDITS entry for Firmware Upload

Russ Weight · Aug 18, 2026 · 1 files

f6d752278c13

MAINTAINERS: Remove Russ Weight from Firmware Loader

Russ Weight · Aug 18, 2026 · 1 files

529c01c3dc0d

btrfs: abort transaction before releasing tree_log_mutex on commit failure

Leo Martins · Aug 19, 2026 · 1 files

08acb54b063a

nvme-tcp: defer TLS inline send to io_work

Xixin Liu · Aug 19, 2026 · 1 files

d61828199c6c

nvme-rdma: fix -EIO cleanup order in queue_rq

Xixin Liu · Aug 19, 2026 · 1 files

a18a6b93a284

btrfs: zoned: finish active block group cleanup if call_zone_finish() fails

Johannes Thumshirn · Aug 19, 2026 · 1 files

98f0a1422e28

scsi: fnic: Initialize the NVMe local port info before registering

Linmao Li · Aug 19, 2026 · 1 files

96c8ea3c5add

block: save page offset gaps in cloned bio

Keith Busch · Aug 19, 2026 · 1 files

cacf35832292

btrfs: do not force reloc root creation during qgroup_account_snapshot()

Qu Wenruo · Aug 20, 2026 · 1 files

bb3a94a68283

drivers: base: test: DRIVER_PE_KUNIT_TEST should not select OF

Geert Uytterhoeven · Aug 20, 2026 · 2 files

2acb9f3d1cc8

btrfs: zstd: fix lost wakeup when waiting for a workspace

FAN YE · Aug 21, 2026 · 1 files

b2d8f2a37231

nvme: print namespace IDs as unsigned 32bit value

Mohamed Khalfella · Aug 21, 2026 · 3 files

59fe1cbc5723

nvmet: print namespace IDs as unsigned 32bit value

Mohamed Khalfella · Aug 21, 2026 · 3 files

7b15d6cf25e6

kernfs: preserve security xattrs without allocating iattrs

Hengyu Liang · Aug 22, 2026 · 1 files

4ed7f3d7d435

nvme: remove stale namespaces by NSID range during scan

Mohamed Khalfella · Aug 23, 2026 · 1 files

df7197ebc728

nvme-tcp: return -EPROTO for a C2HData on a write

Yehyeong Lee · Aug 23, 2026 · 1 files

3f92a6454516

scsi: pm8001: Use rollback index when freeing MSI-X vectors

Runyu Xiao · Aug 24, 2026 · 1 files

a3756f53baf1

scsi: ufs: ufs-qcom: Restore HS/LS link startup mode for Qualcomm UFS controller v6.2+

Nitin Rawat · Aug 25, 2026 · 2 files

b2ededcb271b

scsi: ufs: ufs-qcom: Fix sequential read variance

Nitin Rawat · Aug 25, 2026 · 1 files

e0d26fe176a8

scsi: mpt3sas: Avoid out-of-bounds cpumask_of_node() call in _base_assign_reply_queues()

Ivy Lopez · Aug 25, 2026 · 1 files

09d0c07bd9ce

nvmet: reject namespace enable without device path

Seokgyu Choi · Aug 27, 2026 · 1 files

9a0716348daf

scsi: ibmvfc: Fix kernel-doc name for ibmvfc_scsi_relogin()

Muhammad Falak R Wani · Aug 27, 2026 · 1 files

9a69cc5f192f

scsi: ibmvfc: Document protocol parameter of ibmvfc_alloc_target()

Muhammad Falak R Wani · Aug 27, 2026 · 1 files

af8c27375733

scsi: megaraid_sas: Limit NVMe request size to the PRP chain frame

Thomas Lamprecht · Aug 27, 2026 · 1 files

db62b35cbca0

nvmet-tcp: reject unsolicited H2CData PDUs

Shivam Kumar · Aug 27, 2026 · 1 files

6a7a45b1d947

MAINTAINERS: update Chris Mason's email address

Chris Mason · Aug 27, 2026 · 1 files

6e2b571b0a54

ublk: clear VM_MAYWRITE on read-only ublk char device mmap

Kanishka De Silva · Aug 30, 2026 · 1 files

eaa948c0e19b

nvmet-auth: Synchronize timeout work during SQ teardown

Kazuki Hanai · Aug 30, 2026 · 3 files

3f9c7a108c0e

block: flag zoned disks with GENHD_FL_NO_PART

Damien Le Moal · Aug 31, 2026 · 1 files

fd9beb887073

nvme-tcp.h: drop kernel-doc comments, fix a few descriptions

Randy Dunlap · Aug 31, 2026 · 1 files

139f57343b3d

scsi: mpi3mr: Fix use-after-free on tgt_dev->starget during target device refresh/update

Laurence Oberman · Aug 31, 2026 · 1 files

8d7b3e41ffec

rust: pci: reject IRQ vector indices that do not fit in u32

Sophon Zhang · Aug 31, 2026 · 1 files

5cdd07a68825

MAINTAINERS: update nvme entry

Keith Busch · Sep 1, 2026 · 1 files

3a2c4d55e32a

treewide: refresh kmalloc_obj() conversions

Kees Cook · Sep 2, 2026 · 304 files

90feea391c64

drm/amd/display: Fix harmless type mismatch in allocation

Kees Cook · Sep 3, 2026 · 1 files

63b6a48c951d

LoongArch: Do not select HAVE_RUST when KASAN is enabled

Nathan Chancellor · Sep 4, 2026 · 1 files

20a9e97137ca

LoongArch: Fix typo "avaliable" in comment of vmlinux.lds.S

Hemanth Selam · Sep 4, 2026 · 1 files

30419a0aa128

LoongArch: BPF: Fix off-by-one error for insn_is_cast_user()

Tiezhu Yang · Sep 4, 2026 · 1 files

3e1b64bd8cd2

LoongArch: Remove unused setup_profiling_timer() function

Anthony Iliopoulos · Sep 4, 2026 · 1 files

72ce4b24676e

LoongArch: Avoid preempt count underflow without probe

Jérémy Jean · Sep 4, 2026 · 1 files

c3f2feace5e4

LoongArch: Do not save/restore percpu base register in rethook trampoline

Wentao Guan · Sep 4, 2026 · 1 files

4af22177032a

LoongArch: KVM: Add unregister helpers for the KVM interrupt devices

Chaithanya Lagisetty · Sep 4, 2026 · 8 files

f7a1064cce3b

LoongArch: KVM: Free init resources if kvm_init() fails

Chaithanya Lagisetty · Sep 4, 2026 · 1 files

40bdbb4bfa73

LoongArch: KVM: Remove unused function kvm_arch_flush_remote_tlbs_memslot()

Bibo Mao · Sep 4, 2026 · 2 files

910132bc7d72

LoongArch: KVM: Fix resource leak in kvm_loongarch_env_init() error path

Chaithanya Lagisetty · Sep 4, 2026 · 1 files

27a9bfee3bbc

LoongArch: KVM: Preserve memslot arch flags on KVM_MR_FLAGS_ONLY

Zeng Chi · Sep 4, 2026 · 1 files

501514d6ebd2

LoongArch: KVM: Validate MSI data before routing it to EIOINTC

Zeng Chi · Sep 4, 2026 · 1 files

929637590257

LoongArch: KVM: Fix TOCTOU race on pv_features

Tao Cui · Sep 4, 2026 · 3 files

a2628ce4ddb6

perf build: Add clang and rust target flags for LoongArch

Haiyong Sun · Sep 4, 2026 · 1 files