On Tue, Jul 19, 2022 at 11:55:24AM +0200, Gupta, Pankaj wrote:
...
@@ -4712,12 +4813,10 @@ static long kvm_vm_ioctl(struct file *filp, (u32 __user *)(argp + offsetof(typeof(mem), flags)))) goto out;
if (flags & KVM_MEM_PRIVATE) {
r = -EINVAL;
goto out;
}
size = sizeof(struct kvm_userspace_memory_region);
if (flags & KVM_MEM_PRIVATE)
size = sizeof(struct kvm_userspace_memory_region_ext);
Not sure if we use kvm_userspace_memory_region_ext or kvm_user_mem_region, just for readability.
Somehow, but majorly for code maintainability, kvm_user_mem_region is designed to be the alias of kvm_userspace_memory_region_ext so in the code we can access the 'unpacked' fields using something like 'mem.usersapce_addr' instead of 'mem.region.userspace_addr'.
Chao
else
if (copy_from_user(&mem, argp, size)) goto out;size = sizeof(struct kvm_userspace_memory_region);