KVM: SVM: Fix an error code in sev_gmem_post_populate()
authorDan Carpenter <dan.carpenter@linaro.org>
Wed, 12 Jun 2024 11:50:39 +0000 (14:50 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 13 Aug 2024 10:08:40 +0000 (06:08 -0400)
The copy_from_user() function returns the number of bytes which it
was not able to copy.  Return -EFAULT instead.

Fixes: dee5a47cc7a4 ("KVM: SEV: Add KVM_SEV_SNP_LAUNCH_UPDATE command")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Message-ID: <20240612115040.2423290-4-dan.carpenter@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/svm/sev.c

index 393f450..714c517 100644 (file)
@@ -2290,9 +2290,10 @@ static int sev_gmem_post_populate(struct kvm *kvm, gfn_t gfn_start, kvm_pfn_t pf
                if (src) {
                        void *vaddr = kmap_local_pfn(pfn + i);
 
-                       ret = copy_from_user(vaddr, src + i * PAGE_SIZE, PAGE_SIZE);
-                       if (ret)
+                       if (copy_from_user(vaddr, src + i * PAGE_SIZE, PAGE_SIZE)) {
+                               ret = -EFAULT;
                                goto err;
+                       }
                        kunmap_local(vaddr);
                }