Revert "SPM: Add STATUS_NEED_SCHEDULE to manage scheduler"
This reverts commit 9e38935fabf7eae9d54a550bd578163ec9ca1f99.
Reason for revert: Nightly test issue.
Change-Id: I68af7380bd5aa3f9be8363b52b261b1cf310cd59
diff --git a/secure_fw/spm/ffm/backend_ipc.c b/secure_fw/spm/ffm/backend_ipc.c
index 305d508..31524c7 100644
--- a/secure_fw/spm/ffm/backend_ipc.c
+++ b/secure_fw/spm/ffm/backend_ipc.c
@@ -26,7 +26,6 @@
#include "load/service_defs.h"
#include "load/spm_load_api.h"
#include "psa/error.h"
-#include "internal_status_code.h"
/* Declare the global component list */
struct partition_head_t partition_listhead;
@@ -161,7 +160,6 @@
{
struct partition_t *p_owner = NULL;
psa_signal_t signal = 0;
- psa_status_t ret = PSA_SUCCESS;
if (!handle || !service || !service->p_ldinf || !service->partition) {
return PSA_ERROR_PROGRAMMER_ERROR;
@@ -173,7 +171,7 @@
UNI_LIST_INSERT_AFTER(p_owner, handle, p_handles);
/* Messages put. Update signals */
- ret = backend_assert_signal(p_owner, signal);
+ backend_assert_signal(p_owner, signal);
/*
* If it is a NS request via RPC, it is unnecessary to block current
@@ -181,14 +179,12 @@
*/
if (!is_tfm_rpc_msg(handle)) {
- ret = backend_wait_signals(handle->p_client, TFM_IPC_REPLY_SIGNAL);
- } else {
- ret = PSA_SUCCESS;
+ backend_wait_signals(handle->p_client, TFM_IPC_REPLY_SIGNAL);
}
handle->status = TFM_HANDLE_STATUS_ACTIVE;
- return ret;
+ return PSA_SUCCESS;
}
psa_status_t backend_replying(struct connection_t *handle, int32_t status)
@@ -197,7 +193,7 @@
tfm_rpc_client_call_reply(handle, status);
} else {
handle->p_client->reply_value = (uintptr_t)status;
- return backend_assert_signal(handle->p_client, TFM_IPC_REPLY_SIGNAL);
+ backend_assert_signal(handle->p_client, TFM_IPC_REPLY_SIGNAL);
}
/*
@@ -286,10 +282,10 @@
return control;
}
-psa_status_t backend_wait_signals(struct partition_t *p_pt, psa_signal_t signals)
+psa_signal_t backend_wait_signals(struct partition_t *p_pt, psa_signal_t signals)
{
struct critical_section_t cs_signal = CRITICAL_SECTION_STATIC_INIT;
- psa_status_t ret = PSA_SUCCESS;
+ psa_signal_t ret_signal;
if (!p_pt) {
tfm_core_panic();
@@ -297,21 +293,19 @@
CRITICAL_SECTION_ENTER(cs_signal);
- ret = p_pt->signals_asserted & signals;
- if (ret == 0) {
+ ret_signal = p_pt->signals_asserted & signals;
+ if (ret_signal == 0) {
p_pt->signals_waiting = signals;
- ret = STATUS_NEED_SCHEDULE;
}
CRITICAL_SECTION_LEAVE(cs_signal);
- return ret;
+ return ret_signal;
}
-psa_status_t backend_assert_signal(struct partition_t *p_pt, psa_signal_t signal)
+uint32_t backend_assert_signal(struct partition_t *p_pt, psa_signal_t signal)
{
struct critical_section_t cs_signal = CRITICAL_SECTION_STATIC_INIT;
- psa_status_t ret = PSA_SUCCESS;
if (!p_pt) {
tfm_core_panic();
@@ -319,13 +313,9 @@
CRITICAL_SECTION_ENTER(cs_signal);
p_pt->signals_asserted |= signal;
-
- if (p_pt->signals_asserted & p_pt->signals_waiting) {
- ret = STATUS_NEED_SCHEDULE;
- }
CRITICAL_SECTION_LEAVE(cs_signal);
- return ret;
+ return PSA_SUCCESS;
}
uint64_t ipc_schedule(void)