Use FFA_INTERRUPT rather than custom HF_FFA_RUN_WAKE_UP.

Change-Id: Iae4ba6bc6ce19bf217e1ca4cc65ff0da98757770
Signed-off-by: Andrew Walbran <qwandor@google.com>
diff --git a/main.c b/main.c
index 4c99259..ed5a9e6 100644
--- a/main.c
+++ b/main.c
@@ -363,11 +363,21 @@
 		ret = ffa_run(vcpu->vm->id, vcpu->vcpu_index);
 
 		switch (ret.func) {
-		/* Preempted. */
+		/* Preempted, or wants to wake up another vCPU. */
 		case FFA_INTERRUPT_32:
+		{
+			ffa_vm_id_t vm_id = ffa_vm_id(ret);
+			ffa_vcpu_index_t vcpu_index = ffa_vcpu_index(ret);
+
+			if (vm_id >= FIRST_SECONDARY_VM_ID &&
+			    vm_id != vcpu->vm->id) {
+				/* Wake up another vCPU. */
+				hf_handle_wake_up_request(vm_id, vcpu_index);
+			}
 			if (need_resched())
 				schedule();
 			break;
+		}
 
 		/* Yield. */
 		case FFA_YIELD_32:
@@ -397,12 +407,6 @@
 			atomic_set(&vcpu->waiting_for_message, 0);
 			break;
 
-		/* Wake up another vcpu. */
-		case HF_FFA_RUN_WAKE_UP:
-			hf_handle_wake_up_request(ffa_vm_id(ret),
-						  ffa_vcpu_index(ret));
-			break;
-
 		/* Response available. */
 		case FFA_MSG_SEND_32:
 			if (ffa_receiver(ret) == PRIMARY_VM_ID) {