On Tue, Feb 14, 2023 at 01:24:16PM -0800, Elliot Berman wrote:
When launching a virtual machine, Gunyah userspace allocates memory for
the guest and informs Gunyah about these memory regions through
SET_USER_MEMORY_REGION ioctl.
It also frees memory, see below. Why not document that?
+ case GH_VM_SET_USER_MEM_REGION: {
+ struct gh_userspace_memory_region region;
+
+ if (copy_from_user(®ion, argp, sizeof(region)))
+ return -EFAULT;
+
+ /* All other flag bits are reserved for future use */
+ if (region.flags & ~(GH_MEM_ALLOW_READ | GH_MEM_ALLOW_WRITE | GH_MEM_ALLOW_EXEC |
+ GH_MEM_LENT))
+ return -EINVAL;
Nice, thanks for validating that.
+
+
Nit, 2 blank lines are not needed :(
+ if (region.memory_size)
+ r = gh_vm_mem_alloc(ghvm, ®ion);
+ else
+ r = gh_vm_mem_free(ghvm, region.label);
So if you set the size to 0 it is freed? Wouldn't a separate ioctl make
more sense? Where is this logic documented to userspace? >