lkml.org 
[lkml]   [2021]   [Nov]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v6 02/29] KVM: Open code kvm_delete_memslot() into its only caller
    Date
    From: Sean Christopherson <seanjc@google.com>

    Fold kvm_delete_memslot() into __kvm_set_memory_region() to free up the
    "kvm_delete_memslot()" name for use in a future helper. The delete logic
    isn't so complex/long that it truly needs a helper, and it will be
    simplified a wee bit further in upcoming commits.

    No functional change intended.

    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Reviewed-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
    Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
    ---
    virt/kvm/kvm_main.c | 42 +++++++++++++++++-------------------------
    1 file changed, 17 insertions(+), 25 deletions(-)

    diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
    index 4a1b484518a9..049f98238992 100644
    --- a/virt/kvm/kvm_main.c
    +++ b/virt/kvm/kvm_main.c
    @@ -1670,29 +1670,6 @@ static int kvm_set_memslot(struct kvm *kvm,
    return r;
    }

    -static int kvm_delete_memslot(struct kvm *kvm,
    - const struct kvm_userspace_memory_region *mem,
    - struct kvm_memory_slot *old, int as_id)
    -{
    - struct kvm_memory_slot new;
    -
    - if (!old->npages)
    - return -EINVAL;
    -
    - if (WARN_ON_ONCE(kvm->nr_memslot_pages < old->npages))
    - return -EIO;
    -
    - memset(&new, 0, sizeof(new));
    - new.id = old->id;
    - /*
    - * This is only for debugging purpose; it should never be referenced
    - * for a removed memslot.
    - */
    - new.as_id = as_id;
    -
    - return kvm_set_memslot(kvm, mem, &new, as_id, KVM_MR_DELETE);
    -}
    -
    /*
    * Allocate some memory and give it an address in the guest physical address
    * space.
    @@ -1749,8 +1726,23 @@ int __kvm_set_memory_region(struct kvm *kvm,
    old.id = id;
    }

    - if (!mem->memory_size)
    - return kvm_delete_memslot(kvm, mem, &old, as_id);
    + if (!mem->memory_size) {
    + if (!old.npages)
    + return -EINVAL;
    +
    + if (WARN_ON_ONCE(kvm->nr_memslot_pages < old.npages))
    + return -EIO;
    +
    + memset(&new, 0, sizeof(new));
    + new.id = id;
    + /*
    + * This is only for debugging purpose; it should never be
    + * referenced for a removed memslot.
    + */
    + new.as_id = as_id;
    +
    + return kvm_set_memslot(kvm, mem, &new, as_id, KVM_MR_DELETE);
    + }

    new.as_id = as_id;
    new.id = id;
    \
     
     \ /
      Last update: 2021-11-30 22:43    [W:4.613 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site