Daily update · Sep 26–27, 2026
Mainline kernel: PCI BAR fixes, KVM hardening, AMD SATA suspend fix
Bug fixes and security hardening for PCIe, KVM, AMD platforms, and ATA storage.
In brief
This update brings several targeted fixes: resizable PCI BARs now work on root bus devices, a boot crash on device-tree systems with unconfigured bridges is prevented, Samsung SSDs on AMD systems suspend reliably, KVM nested virtualization gets safer error handling, AMD NBIO atomics are disabled to avoid data corruption, and ATA pass-through sense data is bounded.
Bug fixes
Fix PCI BAR resize for devices on a root bus
The PCI core skipped reassigning device BARs after a resize when the device was directly on a root bus, leaving them unassigned. The fix ensures BARs are reassigned even without a bridge window to adjust.
Why it matters: Restores resizable BAR functionality (e.g., AMD Smart Access Memory) for GPUs and other devices attached directly to a root bus.
Avoid NULL dereference when generating PCI bus properties
The dynamic OF helpers dereferenced pdev->subordinate without checking for NULL, which could cause a boot hang on systems with bridges lacking a secondary bus. They now generate 'bus-range' and 'interrupt-map' properties only when a subordinate bus exists.
Why it matters: Prevents early boot crashes on device-tree based systems with unconfigured PCI bridges.
Extend Samsung LPM quirk to AMD SATA controllers
The existing Samsung low-power mode quirk only matched ATI controllers, but Samsung SSDs on AMD 600-series chipsets also time out during suspend. The quirk now applies to AMD controllers as well.
Why it matters: Fixes system suspend timeouts for Samsung SSDs (e.g., 870 QVO) on AMD platforms.
Fix KVM nested virtualization state page error handling
KVM now re-pends the GET_NESTED_STATE_PAGES request when page retrieval fails, preventing re-entry with stale PFNs, and fills kvm_run exit fields in common error paths so userspace receives correct exit information.
Why it matters: Improves stability and security for users of nested virtualization (e.g., running VMs inside VMs) by avoiding stale memory mappings and confusing exit reasons.
Disable enhanced PCIe atomics on AMD NBIO 7.7/7.11 to prevent data corruption
AMD NBIO 7.7 and 7.11 controllers can corrupt 64-bit DMA transfers when PCIe enhanced atomics are enabled. The kernel now disables this feature on affected systems via SMN.
Why it matters: Prevents data corruption and system instability on affected AMD platforms during DMA transfers.
Security and hardening
Keep vCPUs from re-entering a dead VM
KVM previously could clear the KVM_REQ_VM_DEAD request, allowing a vCPU to attempt entry into a dead VM. The fix prevents clearing this request, ensuring vCPUs never re-enter a dead guest.
Why it matters: Hardens KVM against use-after-free and other bugs that could occur if userspace insists on re-running a vCPU after a fatal VM error.
Bound ATA pass-through sense descriptor writes to avoid buffer overrun
The ATA pass-through error path trusted a device-supplied sense length, allowing a faulty or malicious ATAPI device to cause out-of-bounds kernel buffer writes. The descriptor writes are now properly bounded.
Why it matters: Hardens the kernel against storage devices that return malformed sense data, preventing potential memory corruption when using tools like smartctl or hdparm.
Source commits64 entries +
RISC-V: KVM: Synchronize hrtimer callback during teardown
Myeonghun Pak · Jul 31, 2026 · 1 files
RISC-V: KVM: Fix the conversion between vsip and hvip
Yicong Yang · Aug 4, 2026 · 4 files
KVM: Never clear KVM_REQ_VM_DEAD from a vCPU's requests
Sean Christopherson · Aug 6, 2026 · 5 files
KVM: arm64: Fix AArch32 DBGBXVR<n> handling
Karl Mehltretter · Aug 10, 2026 · 1 files
RISC-V: KVM: Serialize IMSIC attributes with vCPU migration
Xie Bo · Aug 10, 2026 · 1 files
RISC-V: KVM: Release unused page after MMU invalidation
Xie Bo · Aug 10, 2026 · 1 files
RISC-V: KVM: Propagate interrupted G-stage faults
Xie Bo · Aug 10, 2026 · 2 files
s390/uv: Fix loop condition in uv_find_secrets
Steffen Eiden · Aug 12, 2026 · 1 files
s390/uv: Prevent potential out-of-bounds read
Steffen Eiden · Aug 12, 2026 · 1 files
s390/vfio-ap: fix KVM GISC and page leak when queue removed from host config
Anthony Krowiak · Aug 18, 2026 · 1 files
KVM: arm64: vgic-its: Free the caches when GITS_BASER changes
Fuad Tabba · Aug 21, 2026 · 1 files
Revert "KVM: arm64: vgic-its: Don't save collections the table cannot hold"
Fuad Tabba · Aug 21, 2026 · 1 files
KVM: arm64: vgic-its: Skip unreachable devices instead of failing the save
Fuad Tabba · Aug 21, 2026 · 1 files
KVM: arm64: selftests: Add ITS table save tests
Fuad Tabba · Aug 21, 2026 · 2 files
RISC-V: KVM: Preserve firmware counter value across stop/start
SeungJu Cheon · Aug 25, 2026 · 1 files
RISC-V: KVM: Report snapshot write failure to the guest
SeungJu Cheon · Aug 25, 2026 · 1 files
RISC-V: KVM: Fix perf-backed counter accounting across stop and read
SeungJu Cheon · Aug 25, 2026 · 1 files
KVM: arm64: Validate the SVE vector length in pkvm_vcpu_init_sve()
Fuad Tabba · Aug 25, 2026 · 1 files
KVM: arm64: Do not clear VM-wide SVE feature on vCPU init failure
Fuad Tabba · Aug 25, 2026 · 1 files
KVM: arm64: Key unpin_host_sve_state() on the state it unpins
Fuad Tabba · Aug 25, 2026 · 1 files
KVM: arm64: Derive GUEST_HAS_SVE from the SVE feature bit at EL2
Fuad Tabba · Aug 25, 2026 · 1 files
RISC-V: KVM: Fix sdata leak and stale snapshot_addr in snapshot_set_shmem
Zongmin Zhou · Aug 26, 2026 · 1 files
KVM: riscv: Fix NACL hfence entry update order
Zongmin Zhou · Aug 26, 2026 · 1 files
KVM: selftests: Use __GLIBC__, not _GNU_SOURCE, to detect actual glibc
Sean Christopherson · Aug 26, 2026 · 1 files
KVM: s390: Fix dirty marking in adapter_indicators_set*()
Claudio Imbrenda · Aug 28, 2026 · 1 files
KVM: s390: Fix compile warning for kvm_s390_update_cmma_dirty()
Claudio Imbrenda · Aug 28, 2026 · 2 files
KVM: s390: Fix _gaccess_shadow_fault()
Claudio Imbrenda · Aug 28, 2026 · 1 files
KVM: s390: Refactor dat_set_slot()
Claudio Imbrenda · Aug 28, 2026 · 3 files
KVM: s390: Move all code into s390_kvm_mmu_prepare_memory_region()
Claudio Imbrenda · Aug 28, 2026 · 3 files
KVM: s390: Add missing srcu in kvm_s390_set_irq_state()
Claudio Imbrenda · Aug 28, 2026 · 1 files
KVM: s390: Fix potential races in dat skey functions
Claudio Imbrenda · Aug 28, 2026 · 1 files
KVM: s390: Fix race in _destroy_pages_crste()
Claudio Imbrenda · Aug 28, 2026 · 1 files
KVM: arm64: Return -EINVAL for an empty SMCCC filter range at base 0
Karl Mehltretter · Aug 29, 2026 · 1 files
KVM: arm64: selftests: Test empty SMCCC filter range at base 0
Karl Mehltretter · Aug 29, 2026 · 1 files
KVM: arm64: Fix spurious warning for benign stage 2 teardown race
Lorenzo Stoakes (ARM) · Sep 1, 2026 · 1 files
KVM: arm64: nv: Fix null ptr deref on nested wp/unmap, teardown race
Lorenzo Stoakes (ARM) · Sep 1, 2026 · 1 files
KVM: arm64: Fix FGT mapping for HFGITR_EL2.nGCSEPP
Mark Brown · Sep 1, 2026 · 1 files
KVM: x86/pmu: Move Intel PMU global MSRs to intel_is_valid_msr()
Jim Mattson · Sep 2, 2026 · 2 files
KVM: arm64: Transfer the hyp stack pages out of the host stage-2
Fuad Tabba · Sep 8, 2026 · 1 files
KVM: arm64: Match hyp text by physical address in fix_host_ownership()
Fuad Tabba · Sep 8, 2026 · 3 files
KVM: arm64: Move the private VA allocation cursor to __io_map_next
Fuad Tabba · Sep 8, 2026 · 1 files
KVM: arm64: Check every private mapping is hyp-owned at pKVM init
Fuad Tabba · Sep 8, 2026 · 5 files
x86/PCI: Disable enhanced atomics on AMD NBIO 7.7 and 7.11
Mario Limonciello · Sep 8, 2026 · 1 files
selftests/ftrace: Fix unique symbol check in kprobe_non_uniq_symbol.tc
Sven Schnelle · Sep 9, 2026 · 1 files
KVM: arm64: nv: Fix life cycle of the nested_mmus array
Marc Zyngier · Sep 11, 2026 · 4 files
KVM: arm64: nv: Delay freeing of shadow S2 structures until VM destruction
Marc Zyngier · Sep 11, 2026 · 3 files
RISC-V: KVM: Fix HSM hart status error propagation
Tan Chi · Sep 14, 2026 · 1 files
KVM: arm64: Don't WARN on an unknown VM ioctl in protected mode
Fuad Tabba · Sep 14, 2026 · 1 files
KVM: selftests: fix steal_time for arm64 with host page size > 4K
Sebastian Ott · Sep 14, 2026 · 1 files
KVM: Ensure memory attributes xarray nodes are accounted to the caller's memcg
David Ballesteros · Sep 15, 2026 · 1 files
fprobe: Terminate the fgraph_data list when the reservation is not filled
David Carlier · Sep 17, 2026 · 1 files
PCI: Fix BAR resize for devices on a root bus
Liz Fong-Jones · Sep 18, 2026 · 1 files
ata: libata-core: Extend Samsung LPM quirk to AMD controllers
Niklas Cassel · Sep 18, 2026 · 2 files
ata: libata: Correct libata.force parameter documentation
Niklas Cassel · Sep 18, 2026 · 1 files
PCI: of_property: Omit bus properties without a subordinate bus
Angel J · Sep 18, 2026 · 1 files
KVM: Don't pre-reserve xarray entries when storing empty/NULL attributes
Zeng Chi · Sep 21, 2026 · 1 files
KVM: Don't treat reserved xarray entries as having memory attributes
Zeng Chi · Sep 21, 2026 · 1 files
KVM: x86: Re-pend GET_NESTED_STATE_PAGES if getting said pages fails
Sean Christopherson · Sep 21, 2026 · 1 files
KVM: x86: Fill kvm_run exit fields in common get_nested_state_pages() error paths
Sean Christopherson · Sep 21, 2026 · 3 files
KVM: SEV: Free have_run_cpus during VM destruction even if VM is no longer SEV
Sean Christopherson · Sep 23, 2026 · 1 files
KVM: SEV: Do cache maintenance on the source VM during intra-host migration
Sean Christopherson · Sep 23, 2026 · 1 files
ata: libata-scsi: bound the ATA passthru sense descriptor writes
Matthias Goergens · Sep 23, 2026 · 1 files
kprobes: Fix permanent hang when flushing the kprobe optimizer
Andrea Parri · Sep 24, 2026 · 1 files
MAINTAINERS: name the libata/linux for-next branch
Matthias Goergens · Sep 25, 2026 · 1 files