* Elliot Berman [off-list ref] [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;
}
}
//
quoted hunk ↗ jump to hunk
@@ -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);
+ }
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel