Re: [RFC PATCH 5/9] kvm_main.c: split __kvm_set_memory_region logic in kvm_check_mem and kvm_prepare_batch

Yang, Weijiang
2022-09-13T02:57:45Z

On 9/9/2022 6:45 PM, Emanuele Giuseppe Esposito wrote:
> Just a function split. No functional change intended,
> except for the fact that kvm_prepare_batch() does not
> immediately call kvm_set_memslot() if batch->change is
> KVM_MR_DELETE, but delegates the caller (__kvm_set_memory_region).
>
>
> +static int kvm_check_memory_region(struct kvm *kvm,
> + const struct kvm_userspace_memory_region *mem,
> + struct kvm_internal_memory_region_list *batch)
> +{
> + int r;
> +
> + r = check_memory_region_flags(mem);
> + if (r)
> + return r;
>
> - r = kvm_set_memslot(kvm, batch);
> + r = kvm_check_mem(mem);
> if (r)
> - kfree(new);
> + return r;
> +
> + r = kvm_prepare_batch(kvm, mem, batch);
> + if (r && batch->new)
> + kfree(batch->new);
From the patch, r !=0 and batch->new !=NULL are exclusive, so free()
here is not reachable.
> +
> return r;
> }
[...]
>