Re: [PATCH v17 12/35] virt: gunyah: Add resource tickets

From: Srivatsa Vaddagiri
Date: Mon Mar 11 2024 - 01:38:56 EST


* Elliot Berman <quic_eberman@xxxxxxxxxxx> [2024-02-22 15:16:35]:

> Gunyah doesn't process the label and that makes it
> possible for userspace to create multiple resources with the same label.

I think that description conflicts with what is implemented in this patch?

int gunyah_vm_add_resource_ticket(struct gunyah_vm *ghvm,
struct gunyah_vm_resource_ticket *ticket)
{
mutex_lock(&ghvm->resources_lock);
list_for_each_entry(iter, &ghvm->resource_tickets, vm_list) {
if (iter->resource_type == ticket->resource_type &&
iter->label == ticket->label) {
ret = -EEXIST;
goto out;
}
}


//

> @@ -134,6 +246,25 @@ static int gunyah_vm_start(struct gunyah_vm *ghvm)
> }
> ghvm->vm_status = GUNYAH_RM_VM_STATUS_READY;
>
> + ret = gunyah_rm_get_hyp_resources(ghvm->rm, ghvm->vmid, &resources);
> + if (ret) {
> + dev_warn(ghvm->parent,
> + "Failed to get hypervisor resources for VM: %d\n",
> + ret);
> + goto err;
> + }

Where do we free memory pointed by 'resources' ptr?

> +
> + for (i = 0, n = le32_to_cpu(resources->n_entries); i < n; i++) {
> + ghrsc = gunyah_rm_alloc_resource(ghvm->rm,
> + &resources->entries[i]);
> + if (!ghrsc) {
> + ret = -ENOMEM;
> + goto err;
> + }
> +
> + gunyah_vm_add_resource(ghvm, ghrsc);
> + }