mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-23 09:47:44 +00:00
HV: make vm id statically by uuid
Currently VM id of NORMAL_VM is allocated dymatically, we need to make VM id statically for FuSa compliance. This patch will pre-configure UUID for all VMs, then NORMAL_VM could get its VM id/configuration from vm_configs array by indexing the UUID. If UUID collisions is found in vm configs array, HV will refuse to load the VM; Tracked-On: #2291 Signed-off-by: Victor Sun <victor.sun@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
committed by
ACRN System Integration
parent
cb10dc7e73
commit
445999af5d
@@ -126,15 +126,10 @@ int32_t hcall_create_vm(struct acrn_vm *vm, uint64_t param)
|
||||
|
||||
(void)memset((void *)&cv, 0U, sizeof(cv));
|
||||
if (copy_from_gpa(vm, &cv, param, sizeof(cv)) == 0) {
|
||||
/* check whether there is a free vm id for use */
|
||||
/* TODO: pass vm id from DM to make vm_id static */
|
||||
vm_id = find_free_vm_id();
|
||||
vm_id = get_vmid_by_uuid(&cv.uuid[0]);
|
||||
if (vm_id < CONFIG_MAX_VM_NUM) {
|
||||
vm_config = get_vm_config(vm_id);
|
||||
/* TODO: set by DM */
|
||||
vm_config->type = NORMAL_VM;
|
||||
vm_config->guest_flags |= cv.vm_flag;
|
||||
(void)memcpy_s(&vm_config->uuid[0], 16U, &cv.uuid[0], 16U);
|
||||
|
||||
/* GUEST_FLAG_RT must be set if we have GUEST_FLAG_LAPIC_PASSTHROUGH set in guest_flags */
|
||||
if (((vm_config->guest_flags & GUEST_FLAG_LAPIC_PASSTHROUGH) != 0U)
|
||||
|
Reference in New Issue
Block a user