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);
}