]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: SEV: Drop useless sanity checks in sev_mem_enc_register_region()
authorSean Christopherson <seanjc@google.com>
Fri, 13 Mar 2026 00:32:59 +0000 (17:32 -0700)
committerSean Christopherson <seanjc@google.com>
Fri, 3 Apr 2026 16:37:25 +0000 (09:37 -0700)
Drop sev_mem_enc_register_region()'s sanity checks on the incoming address
and size, as SEV is 64-bit only, making ULONG_MAX a 64-bit, all-ones value,
and thus making it impossible for kvm_enc_region.{addr,size} to be greater
than ULONG_MAX.

Note, sev_pin_memory() verifies the incoming address is non-NULL (which
isn't strictly required, but whatever), and that addr+size don't wrap to
zero (which _is_ needed and what really needs to be guarded against).

Note #2, pin_user_pages_fast() guards against the end address walking into
kernel address space, so lack of an access_ok() check is also safe (maybe
not ideal, but safe).

No functional change intended (the generated code is literally the same,
i.e. the compiler was smart enough to know the checks were useless).

Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
Tested-by: Liam Merwick <liam.merwick@oracle.com>
Link: https://patch.msgid.link/20260313003302.3136111-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/svm/sev.c

index 2c216726718d9a8a17d1085f3766919ea191a597..aa4499a235f2e13ef8c4561d9021f30b0ea9a5a4 100644 (file)
@@ -2711,9 +2711,6 @@ int sev_mem_enc_register_region(struct kvm *kvm,
        if (is_mirroring_enc_context(kvm))
                return -EINVAL;
 
-       if (range->addr > ULONG_MAX || range->size > ULONG_MAX)
-               return -EINVAL;
-
        region = kzalloc_obj(*region, GFP_KERNEL_ACCOUNT);
        if (!region)
                return -ENOMEM;