X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_hypercall.c;h=59e64844a497bb0fe19ed3ef84f2fe57d603caf9;hb=774bac9fbb03ef8bf7c2ca2c79a8b87c9bc4c526;hp=6cb51e039fafac5d7b21bbef96677528502ec5de;hpb=002d46c777ac52048d0a3e82c80821ad3c8fef46;p=palacios.git diff --git a/palacios/src/palacios/vmm_hypercall.c b/palacios/src/palacios/vmm_hypercall.c index 6cb51e0..59e6484 100644 --- a/palacios/src/palacios/vmm_hypercall.c +++ b/palacios/src/palacios/vmm_hypercall.c @@ -136,6 +136,11 @@ int v3_register_hypercall(struct v3_vm_info * vm, hcall_id_t hypercall_id, struct hypercall * hcall = (struct hypercall *)V3_Malloc(sizeof(struct hypercall)); + if (!hcall) { + PrintError(vm, VCORE_NONE, "Cannot allocate in registering hypercall\n"); + return -1; + } + hcall->id = hypercall_id; hcall->priv_data = priv_data; hcall->hcall_fn = hypercall; @@ -161,7 +166,7 @@ int v3_remove_hypercall(struct v3_vm_info * vm, hcall_id_t hypercall_id) { struct hypercall * hcall = get_hypercall(vm, hypercall_id); if (hcall == NULL) { - PrintError("Attempted to remove non existant hypercall\n"); + PrintError(vm, VCORE_NONE, "Attempted to remove non existant hypercall\n"); return -1; } @@ -176,13 +181,13 @@ int v3_handle_hypercall(struct guest_info * info) { struct hypercall * hcall = get_hypercall(info->vm_info, hypercall_id); if (!hcall) { - PrintError("Invalid Hypercall (%d(0x%x) not registered)\n", + PrintError(info->vm_info, info, "Invalid Hypercall (%d(0x%x) not registered)\n", hypercall_id, hypercall_id); return -1; } if (hcall->hcall_fn(info, hypercall_id, hcall->priv_data) != 0) { - PrintError("Error handling hypercall\n"); + PrintError(info->vm_info, info, "Error handling hypercall\n"); return -1; }