[GIT PULL] KVM: x86: SVM changes for 7.3

From: Sean Christopherson

Date: Wed Aug 12 2026 - 17:36:36 EST


A somewhat random collection of fixes. Note, dropping FOLL_WRITE is safe as
GUP breaks CoW for FOLL_PIN. This is explained in the changelog, but I figured
I'd call it out here too in case you have the same knee-jerk reaction I had.

The following changes since commit a204badd8432f93b7e862e7dac6db0fe3d65f370:

Merge branch 'kvm-chainsaw' into HEAD (2026-06-25 11:32:09 +0200)

are available in the Git repository at:

https://github.com/kvm-x86/linux.git tags/kvm-x86-svm-7.3

for you to fetch changes up to ec9a16c6aeba8e19ce98c58a1ac255681a4dd0ac:

KVM: SVM: Always intercept ICEBP to workaround AMD ICEBP+TASK_SWITCH flaws (2026-07-24 13:15:14 -0700)

----------------------------------------------------------------
KVM SVM changes for 7.3

- Remove a dying VM from the GA Log notifier list before the VM is actually
destroyed, to fix a potential use-after-free.

- Don't pass FOLL_WRITE when registering encrypted memory regions, i.e. when
pinning SEV/SEV-ES guest memory, to fix a regression with file-backed memory
introduced by KVM's (correct) usage of long-term pins.

- Allocate full pages for SEV/SEV-ES {DE,EN}CRYPT ops on SNP-enabled hosts to
fix a data corruption issue due to the PSP driver assigning to-be-written
pages to firmware (as required by the SNP specs).

- Unconditionally intercept ICBEP so that KVM generates the correct guest RIP
when handling an ICEBP-induced TASK_SWITCH #VMEXIT.

----------------------------------------------------------------
David Woodhouse (1):
KVM: SVM: Always intercept ICEBP to workaround AMD ICEBP+TASK_SWITCH flaws

Pankaj Gupta (1):
KVM: SEV: Drop FOLL_WRITE for encrypted region registration

Qiang Ma (1):
KVM: SVM: Remove redundant ret = 0 in svm_set_nested_state

Sean Christopherson (4):
KVM: SVM: Make kvm_x86_ops.vcpu_precreate() hook fully AVIC specific
KVM: SVM: Do all per-VM AVIC initialization during vCPU precreation phase
KVM: SVM: Remove VM from the GA Log notifier list before VM destruction
KVM: SEV: Allocate full pages for {DE,EN}CRYPT ops on SNP-enabled hosts

arch/x86/kvm/svm/avic.c | 96 +++++++++++++++++++++++++++++++----------------
arch/x86/kvm/svm/nested.c | 1 -
arch/x86/kvm/svm/sev.c | 29 ++++++++++++--
arch/x86/kvm/svm/svm.c | 34 +++++++++++------
arch/x86/kvm/svm/svm.h | 4 +-
5 files changed, 113 insertions(+), 51 deletions(-)