Implement SPCI_RUN directly rather than via encoding run_return.
Bug: 141469322
Change-Id: I34d53898acb1e09b37dd9ff314a8883e32abda98
diff --git a/src/arch/aarch64/hypervisor/handler.c b/src/arch/aarch64/hypervisor/handler.c
index 885a383..f976eee 100644
--- a/src/arch/aarch64/hypervisor/handler.c
+++ b/src/arch/aarch64/hypervisor/handler.c
@@ -344,15 +344,11 @@
case SPCI_MSG_POLL_32:
*args = api_spci_msg_recv(false, current(), next);
return true;
- case SPCI_RUN_32: {
- struct vcpu *vcpu = current();
- *args = hf_vcpu_run_return_encode(
- api_vcpu_run((args->arg1 >> 16) & 0xffff,
- args->arg1 & 0xffff, vcpu, next),
- vcpu->vm->id, vcpu_index(vcpu));
+ case SPCI_RUN_32:
+ *args = api_spci_run((args->arg1 >> 16) & 0xffff,
+ args->arg1 & 0xffff, current(), next);
return true;
}
- }
return false;
}