← Back to archive

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.

d58384c22739

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.

8805840aad73

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.

e6bae5034ef4

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.

10180a277549c1214f293d77

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.

4fde44822512

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.

8cd280282d12

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.

80320b278fea

Source commits64 entries +
aaad136d56d9

RISC-V: KVM: Synchronize hrtimer callback during teardown

Myeonghun Pak · Jul 31, 2026 · 1 files

52c6b7d20d3e

RISC-V: KVM: Fix the conversion between vsip and hvip

Yicong Yang · Aug 4, 2026 · 4 files

8cd280282d12

KVM: Never clear KVM_REQ_VM_DEAD from a vCPU's requests

Sean Christopherson · Aug 6, 2026 · 5 files

6b1bca1b1ab7

KVM: arm64: Fix AArch32 DBGBXVR<n> handling

Karl Mehltretter · Aug 10, 2026 · 1 files

8ae12ccaec6e

RISC-V: KVM: Serialize IMSIC attributes with vCPU migration

Xie Bo · Aug 10, 2026 · 1 files

ed54fdb460a6

RISC-V: KVM: Release unused page after MMU invalidation

Xie Bo · Aug 10, 2026 · 1 files

f41fb17143df

RISC-V: KVM: Propagate interrupted G-stage faults

Xie Bo · Aug 10, 2026 · 2 files

d12ce6bce5ec

s390/uv: Fix loop condition in uv_find_secrets

Steffen Eiden · Aug 12, 2026 · 1 files

f47190b08b71

s390/uv: Prevent potential out-of-bounds read

Steffen Eiden · Aug 12, 2026 · 1 files

65e05ec252a9

s390/vfio-ap: fix KVM GISC and page leak when queue removed from host config

Anthony Krowiak · Aug 18, 2026 · 1 files

8cd92f77ae4f

KVM: arm64: vgic-its: Free the caches when GITS_BASER changes

Fuad Tabba · Aug 21, 2026 · 1 files

30908e727247

Revert "KVM: arm64: vgic-its: Don't save collections the table cannot hold"

Fuad Tabba · Aug 21, 2026 · 1 files

cc5d96036e01

KVM: arm64: vgic-its: Skip unreachable devices instead of failing the save

Fuad Tabba · Aug 21, 2026 · 1 files

6f182db39fb0

KVM: arm64: selftests: Add ITS table save tests

Fuad Tabba · Aug 21, 2026 · 2 files

8b3fd1a8b305

RISC-V: KVM: Preserve firmware counter value across stop/start

SeungJu Cheon · Aug 25, 2026 · 1 files

057dd2639cea

RISC-V: KVM: Report snapshot write failure to the guest

SeungJu Cheon · Aug 25, 2026 · 1 files

c7e2cc38c561

RISC-V: KVM: Fix perf-backed counter accounting across stop and read

SeungJu Cheon · Aug 25, 2026 · 1 files

2a2eb10795a1

KVM: arm64: Validate the SVE vector length in pkvm_vcpu_init_sve()

Fuad Tabba · Aug 25, 2026 · 1 files

a1b3c788ad31

KVM: arm64: Do not clear VM-wide SVE feature on vCPU init failure

Fuad Tabba · Aug 25, 2026 · 1 files

0d62fbf34d8f

KVM: arm64: Key unpin_host_sve_state() on the state it unpins

Fuad Tabba · Aug 25, 2026 · 1 files

4f16c5fc8dc4

KVM: arm64: Derive GUEST_HAS_SVE from the SVE feature bit at EL2

Fuad Tabba · Aug 25, 2026 · 1 files

b7749531a9b1

RISC-V: KVM: Fix sdata leak and stale snapshot_addr in snapshot_set_shmem

Zongmin Zhou · Aug 26, 2026 · 1 files

b3d346838ec6

KVM: riscv: Fix NACL hfence entry update order

Zongmin Zhou · Aug 26, 2026 · 1 files

f13368e0acff

KVM: selftests: Use __GLIBC__, not _GNU_SOURCE, to detect actual glibc

Sean Christopherson · Aug 26, 2026 · 1 files

d215f014b352

KVM: s390: Fix dirty marking in adapter_indicators_set*()

Claudio Imbrenda · Aug 28, 2026 · 1 files

ae12d2f9c119

KVM: s390: Fix compile warning for kvm_s390_update_cmma_dirty()

Claudio Imbrenda · Aug 28, 2026 · 2 files

faff4c8ff3db

KVM: s390: Fix _gaccess_shadow_fault()

Claudio Imbrenda · Aug 28, 2026 · 1 files

00c0ae5e4386

KVM: s390: Refactor dat_set_slot()

Claudio Imbrenda · Aug 28, 2026 · 3 files

19192a404327

KVM: s390: Move all code into s390_kvm_mmu_prepare_memory_region()

Claudio Imbrenda · Aug 28, 2026 · 3 files

f3a557067d57

KVM: s390: Add missing srcu in kvm_s390_set_irq_state()

Claudio Imbrenda · Aug 28, 2026 · 1 files

27554b9505dd

KVM: s390: Fix potential races in dat skey functions

Claudio Imbrenda · Aug 28, 2026 · 1 files

4ca00a9154f9

KVM: s390: Fix race in _destroy_pages_crste()

Claudio Imbrenda · Aug 28, 2026 · 1 files

64dc6f1db7e6

KVM: arm64: Return -EINVAL for an empty SMCCC filter range at base 0

Karl Mehltretter · Aug 29, 2026 · 1 files

0a46eb5719fa

KVM: arm64: selftests: Test empty SMCCC filter range at base 0

Karl Mehltretter · Aug 29, 2026 · 1 files

38b70fc453c3

KVM: arm64: Fix spurious warning for benign stage 2 teardown race

Lorenzo Stoakes (ARM) · Sep 1, 2026 · 1 files

4c74e233cded

KVM: arm64: nv: Fix null ptr deref on nested wp/unmap, teardown race

Lorenzo Stoakes (ARM) · Sep 1, 2026 · 1 files

089e4f3c4862

KVM: arm64: Fix FGT mapping for HFGITR_EL2.nGCSEPP

Mark Brown · Sep 1, 2026 · 1 files

79a71cc2568f

KVM: x86/pmu: Move Intel PMU global MSRs to intel_is_valid_msr()

Jim Mattson · Sep 2, 2026 · 2 files

3a8c562892b9

KVM: arm64: Transfer the hyp stack pages out of the host stage-2

Fuad Tabba · Sep 8, 2026 · 1 files

5a8b505ede13

KVM: arm64: Match hyp text by physical address in fix_host_ownership()

Fuad Tabba · Sep 8, 2026 · 3 files

224584140114

KVM: arm64: Move the private VA allocation cursor to __io_map_next

Fuad Tabba · Sep 8, 2026 · 1 files

cfe80c3837f9

KVM: arm64: Check every private mapping is hyp-owned at pKVM init

Fuad Tabba · Sep 8, 2026 · 5 files

4fde44822512

x86/PCI: Disable enhanced atomics on AMD NBIO 7.7 and 7.11

Mario Limonciello · Sep 8, 2026 · 1 files

d22c3e0088e8

selftests/ftrace: Fix unique symbol check in kprobe_non_uniq_symbol.tc

Sven Schnelle · Sep 9, 2026 · 1 files

33346f8960c7

KVM: arm64: nv: Fix life cycle of the nested_mmus array

Marc Zyngier · Sep 11, 2026 · 4 files

e5843f4effaa

KVM: arm64: nv: Delay freeing of shadow S2 structures until VM destruction

Marc Zyngier · Sep 11, 2026 · 3 files

41e81f7e3ef9

RISC-V: KVM: Fix HSM hart status error propagation

Tan Chi · Sep 14, 2026 · 1 files

49d9d295d69d

KVM: arm64: Don't WARN on an unknown VM ioctl in protected mode

Fuad Tabba · Sep 14, 2026 · 1 files

96e6757cb067

KVM: selftests: fix steal_time for arm64 with host page size > 4K

Sebastian Ott · Sep 14, 2026 · 1 files

382e5d514b6f

KVM: Ensure memory attributes xarray nodes are accounted to the caller's memcg

David Ballesteros · Sep 15, 2026 · 1 files

1d653a183973

fprobe: Terminate the fgraph_data list when the reservation is not filled

David Carlier · Sep 17, 2026 · 1 files

d58384c22739

PCI: Fix BAR resize for devices on a root bus

Liz Fong-Jones · Sep 18, 2026 · 1 files

e6bae5034ef4

ata: libata-core: Extend Samsung LPM quirk to AMD controllers

Niklas Cassel · Sep 18, 2026 · 2 files

88a0474d92ba

ata: libata: Correct libata.force parameter documentation

Niklas Cassel · Sep 18, 2026 · 1 files

8805840aad73

PCI: of_property: Omit bus properties without a subordinate bus

Angel J · Sep 18, 2026 · 1 files

119e9db233ad

KVM: Don't pre-reserve xarray entries when storing empty/NULL attributes

Zeng Chi · Sep 21, 2026 · 1 files

277d3623d99a

KVM: Don't treat reserved xarray entries as having memory attributes

Zeng Chi · Sep 21, 2026 · 1 files

10180a277549

KVM: x86: Re-pend GET_NESTED_STATE_PAGES if getting said pages fails

Sean Christopherson · Sep 21, 2026 · 1 files

c1214f293d77

KVM: x86: Fill kvm_run exit fields in common get_nested_state_pages() error paths

Sean Christopherson · Sep 21, 2026 · 3 files

12c1f6e03f94

KVM: SEV: Free have_run_cpus during VM destruction even if VM is no longer SEV

Sean Christopherson · Sep 23, 2026 · 1 files

93de2a6a4b91

KVM: SEV: Do cache maintenance on the source VM during intra-host migration

Sean Christopherson · Sep 23, 2026 · 1 files

80320b278fea

ata: libata-scsi: bound the ATA passthru sense descriptor writes

Matthias Goergens · Sep 23, 2026 · 1 files

5bfa9f1a9dcb

kprobes: Fix permanent hang when flushing the kprobe optimizer

Andrea Parri · Sep 24, 2026 · 1 files

113dcdfadf30

MAINTAINERS: name the libata/linux for-next branch

Matthias Goergens · Sep 25, 2026 · 1 files