]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: SEV: Mark source page dirty when writing back CPUID data on failure
authorAckerley Tng <ackerleytng@google.com>
Fri, 22 May 2026 22:46:10 +0000 (15:46 -0700)
committerSean Christopherson <seanjc@google.com>
Tue, 26 May 2026 16:56:36 +0000 (09:56 -0700)
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 <ackerleytng@google.com>
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 <seanjc@google.com>
arch/x86/kvm/svm/sev.c

index 0e7f8b5cd4cb4b73493e01fc004b3986cb671355..1d513778d88d9fef83fa0b44d8dd499664165899 100644 (file)
@@ -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);