* Elliot Berman <quic_eberman@xxxxxxxxxxx> [2023-01-20 14:46:13]: > +static int gh_vm_start(struct gunyah_vm *ghvm) > +{ > + struct gunyah_vm_memory_mapping *mapping; > + u64 dtb_offset; > + u32 mem_handle; > + int ret; > + > + down_write(&ghvm->status_lock); > + if (ghvm->vm_status != GH_RM_VM_STATUS_NO_STATE) { > + up_write(&ghvm->status_lock); > + return 0; return -EINVAL in this case. Additionally check if its already GH_RM_VM_STATUS_READY and return 0 in that case. [snip] > + mem_handle = mapping->parcel.mem_handle; > + dtb_offset = ghvm->dtb_config.gpa - mapping->guest_phys_addr; > + > + ret = gh_rm_vm_configure(ghvm->rm, ghvm->vmid, ghvm->auth, mem_handle, > + 0, 0, dtb_offset, ghvm->dtb_config.size); Default value of auth is 0 (GH_RM_VM_AUTH_NONE). Is that what you wanted here? Perhaps initialize default value of auth to be GH_RM_VM_AUTH_QCOM_PIL_ELF?