From: Ackerley Tng Date: Fri, 22 May 2026 22:46:10 +0000 (-0700) Subject: KVM: SEV: Mark source page dirty when writing back CPUID data on failure X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=97cd21d57e9bd2da79845178d9250cfd19289cd4;p=thirdparty%2Fkernel%2Flinux.git KVM: SEV: Mark source page dirty when writing back CPUID data on failure When writing back CPUID data (provided by trusted firmware) to the source page on failure, mark the page/folio as dirty so that the data isn't lost in the unlikely scenario the page is reclaimed before its read by userspace. Fixes: 2a62345b3052 ("KVM: guest_memfd: GUP source pages prior to populating guest memory") Signed-off-by: Ackerley Tng Link: https://patch.msgid.link/20260522-fix-sev-gmem-post-populate-v2-5-3f196bfad5a1@google.com [sean: use set_page_dirty(), massage changelog] Signed-off-by: Sean Christopherson --- diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 0e7f8b5cd4cb..1d513778d88d 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -2382,6 +2382,7 @@ static int sev_gmem_post_populate(struct kvm *kvm, gfn_t gfn, kvm_pfn_t pfn, void *dst_vaddr = kmap_local_pfn(pfn); memcpy(src_vaddr, dst_vaddr, PAGE_SIZE); + set_page_dirty(src_page); kunmap_local(dst_vaddr); kunmap_local(src_vaddr);