FF-A: FFA_MSG_SEND_DIRECT_REQ with invalid IDs

A call to FFA_MSG_SEND_DIRECT_REQ with invalid VM IDs should return
error with code FFA_INVALID_PARAMETERS.

Change-Id: Iedfa173b37857f6f0b7297b6be012c51c51b169a
Signed-off-by: J-Alves <joao.alves@arm.com>
diff --git a/src/api.c b/src/api.c
index cce9cf9..2667283 100644
--- a/src/api.c
+++ b/src/api.c
@@ -1666,7 +1666,7 @@
 
 	if (!arch_other_world_is_direct_request_valid(current, sender_vm_id,
 						      receiver_vm_id)) {
-		return ffa_error(FFA_NOT_SUPPORTED);
+		return ffa_error(FFA_INVALID_PARAMETERS);
 	}
 
 	receiver_vm = vm_find(receiver_vm_id);
@@ -1802,7 +1802,7 @@
 
 	if (!arch_other_world_is_direct_response_valid(current, sender_vm_id,
 						       receiver_vm_id)) {
-		return ffa_error(FFA_NOT_SUPPORTED);
+		return ffa_error(FFA_INVALID_PARAMETERS);
 	}
 
 	current_locked = vcpu_lock(current);
diff --git a/test/vmapi/primary_with_secondaries/ffa.c b/test/vmapi/primary_with_secondaries/ffa.c
index 8ac030c..a3550ef 100644
--- a/test/vmapi/primary_with_secondaries/ffa.c
+++ b/test/vmapi/primary_with_secondaries/ffa.c
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019 The Hafnium Authors.
+ * Copyright 2021 The Hafnium Authors.
  *
  * Use of this source code is governed by a BSD-style
  * license that can be found in the LICENSE file or at
@@ -253,7 +253,7 @@
 	res = ffa_msg_send_direct_req(HF_PRIMARY_VM_ID, HF_PRIMARY_VM_ID,
 				      msg[0], msg[1], msg[2], msg[3], msg[4]);
 
-	EXPECT_FFA_ERROR(res, FFA_NOT_SUPPORTED);
+	EXPECT_FFA_ERROR(res, FFA_INVALID_PARAMETERS);
 }
 
 /**
@@ -269,7 +269,7 @@
 
 	res = ffa_msg_send_direct_resp(HF_PRIMARY_VM_ID, SERVICE_VM1, 0, 0, 0,
 				       0, 0);
-	EXPECT_FFA_ERROR(res, FFA_NOT_SUPPORTED);
+	EXPECT_FFA_ERROR(res, FFA_INVALID_PARAMETERS);
 }
 
 /**
diff --git a/test/vmapi/primary_with_secondaries/services/ffa_check.c b/test/vmapi/primary_with_secondaries/services/ffa_check.c
index 327b6c7..035ed29 100644
--- a/test/vmapi/primary_with_secondaries/services/ffa_check.c
+++ b/test/vmapi/primary_with_secondaries/services/ffa_check.c
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019 The Hafnium Authors.
+ * Copyright 2021 The Hafnium Authors.
  *
  * Use of this source code is governed by a BSD-style
  * license that can be found in the LICENSE file or at
@@ -95,7 +95,7 @@
 	EXPECT_FFA_ERROR(ret, FFA_DENIED);
 
 	ret = ffa_msg_send_direct_req(SERVICE_VM1, SERVICE_VM2, 0, 0, 0, 0, 0);
-	EXPECT_FFA_ERROR(ret, FFA_NOT_SUPPORTED);
+	EXPECT_FFA_ERROR(ret, FFA_INVALID_PARAMETERS);
 
 	ret = ffa_msg_poll();
 	EXPECT_FFA_ERROR(ret, FFA_DENIED);
@@ -116,10 +116,10 @@
 
 	ret = ffa_msg_send_direct_req(SERVICE_VM1, HF_PRIMARY_VM_ID, 0, 0, 0, 0,
 				      0);
-	EXPECT_FFA_ERROR(ret, FFA_NOT_SUPPORTED);
+	EXPECT_FFA_ERROR(ret, FFA_INVALID_PARAMETERS);
 
 	ret = ffa_msg_send_direct_req(SERVICE_VM1, SERVICE_VM2, 0, 0, 0, 0, 0);
-	EXPECT_FFA_ERROR(ret, FFA_NOT_SUPPORTED);
+	EXPECT_FFA_ERROR(ret, FFA_INVALID_PARAMETERS);
 
 	args = ffa_msg_wait();
 	EXPECT_EQ(args.func, FFA_MSG_SEND_DIRECT_REQ_32);
@@ -167,10 +167,10 @@
 	ffa_vm_id_t receiver = ffa_msg_send_receiver(args);
 
 	res = ffa_msg_send_direct_resp(receiver, SERVICE_VM2, 0, 0, 0, 0, 0);
-	EXPECT_FFA_ERROR(res, FFA_NOT_SUPPORTED);
+	EXPECT_FFA_ERROR(res, FFA_INVALID_PARAMETERS);
 
 	res = ffa_msg_send_direct_resp(SERVICE_VM2, sender, 0, 0, 0, 0, 0);
-	EXPECT_FFA_ERROR(res, FFA_NOT_SUPPORTED);
+	EXPECT_FFA_ERROR(res, FFA_INVALID_PARAMETERS);
 
 	ffa_msg_send_direct_resp(receiver, sender, 0, 0, 0, 0, 0);
 }