cactus: break the message loop on bad message request

When the FF-A direct message request is not received as expected
prefer breaking the message loop and panicing rather than replying
with the FF-A error ABI to the SPMC. It is improper to use this
latter ABI in context of Hafnium as this is treated as an invalid
SMC issued by the SP.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I77cd0831a850e775f9996f4ecd1b5a81e6244a53
diff --git a/spm/cactus/cactus_main.c b/spm/cactus/cactus_main.c
index 737fd11..727ebcb 100644
--- a/spm/cactus/cactus_main.c
+++ b/spm/cactus/cactus_main.c
@@ -50,18 +50,21 @@
 	for (;;) {
 
 		if (ffa_ret.ret0 != FFA_MSG_SEND_DIRECT_REQ_SMC32) {
-			ffa_ret = ffa_error(-1);
-			continue;
+			ERROR("%s(%u) unknown func id 0x%lx\n",
+				__func__, vm_id, ffa_ret.ret0);
+			break;
 		}
 
 		if (ffa_ret.ret1 != vm_id) {
-			ffa_ret = ffa_error(-2);
-			continue;
+			ERROR("%s(%u) invalid vm id 0x%lx\n",
+				__func__, vm_id, ffa_ret.ret1);
+			break;
 		}
 
 		if (ffa_ret.ret2 != HYP_ID) {
-			ffa_ret = ffa_error(-3);
-			continue;
+			ERROR("%s(%u) invalid hyp id 0x%lx\n",
+				__func__, vm_id, ffa_ret.ret2);
+			break;
 		}
 
 		/*
@@ -76,6 +79,8 @@
 		 */
 		ffa_ret = ffa_msg_send_direct_resp(vm_id, HYP_ID, sp_response);
 	}
+
+	panic();
 }
 
 static const mmap_region_t cactus_mmap[] __attribute__((used)) = {