diff --git a/secure_fw/spm/cmsis_psa/internal_status_code.h b/secure_fw/spm/cmsis_psa/internal_status_code.h
index fbb0b63..d9665cf 100644
--- a/secure_fw/spm/cmsis_psa/internal_status_code.h
+++ b/secure_fw/spm/cmsis_psa/internal_status_code.h
@@ -16,6 +16,4 @@
 #define SPM_ERROR_MEMORY_CHECK     ((psa_status_t)-252)
 #define SPM_ERROR_GENERIC          ((psa_status_t)-253)
 
-#define STATUS_NEED_SCHEDULE       ((psa_status_t)-254)
-
 #endif /* __INTERNAL_STATUS_CODE_H__ */
diff --git a/secure_fw/spm/cmsis_psa/spm_cross_call.c b/secure_fw/spm/cmsis_psa/spm_cross_call.c
index 8778730..4e4aa40 100644
--- a/secure_fw/spm/cmsis_psa/spm_cross_call.c
+++ b/secure_fw/spm/cmsis_psa/spm_cross_call.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021-2023, Arm Limited. All rights reserved.
+ * Copyright (c) 2021-2022, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -13,7 +13,6 @@
 #include "tfm_arch.h"
 #include "ffm/backend.h"
 #include "ffm/psa_api.h"
-#include "internal_status_code.h"
 
 typedef psa_status_t (*target_fn_t)(uint32_t a0, uint32_t a1,
                                     uint32_t a2, uint32_t a3);
@@ -54,7 +53,7 @@
     }
 
     /* Interrupt is masked, PendSV will not happen immediately. */
-    if (status == STATUS_NEED_SCHEDULE) {
+    if (THRD_EXPECTING_SCHEDULE()) {
         tfm_arch_trigger_pendsv();
     }
 }
diff --git a/secure_fw/spm/cmsis_psa/tfm_core_svcalls_ipc.c b/secure_fw/spm/cmsis_psa/tfm_core_svcalls_ipc.c
index 0d7caae..9c672bc 100644
--- a/secure_fw/spm/cmsis_psa/tfm_core_svcalls_ipc.c
+++ b/secure_fw/spm/cmsis_psa/tfm_core_svcalls_ipc.c
@@ -24,7 +24,6 @@
 #include "load/partition_defs.h"
 #include "psa/client.h"
 #include "tfm_hal_platform.h"
-#include "internal_status_code.h"
 
 #ifdef PLATFORM_SVC_HANDLERS
 extern int32_t platform_svc_handlers(uint8_t svc_num,
@@ -59,7 +58,7 @@
         break;
 #if CONFIG_TFM_DOORBELL_API == 1
     case TFM_SVC_PSA_NOTIFY:
-        return tfm_spm_partition_psa_notify((int32_t)ctx[0]);
+        tfm_spm_partition_psa_notify((int32_t)ctx[0]);
         break;
     case TFM_SVC_PSA_CLEAR:
         tfm_spm_partition_psa_clear();
@@ -197,7 +196,7 @@
             tfm_core_panic();
         }
         svc_args[0] = SVC_Handler_IPC(svc_number, svc_args, exc_return);
-        if (svc_args[0] == STATUS_NEED_SCHEDULE) {
+        if (THRD_EXPECTING_SCHEDULE()) {
             tfm_arch_trigger_pendsv();
         }
 #else
diff --git a/secure_fw/spm/cmsis_psa/thread.h b/secure_fw/spm/cmsis_psa/thread.h
index c01bae5..17bb3d0 100644
--- a/secure_fw/spm/cmsis_psa/thread.h
+++ b/secure_fw/spm/cmsis_psa/thread.h
@@ -96,6 +96,14 @@
                                 CURRENT_THREAD->p_context_ctrl = (void *)(x)
 
 /*
+ * Check if a schedule is under expectation by measuring on a given thread.
+ *
+ * Return :
+ *  `true` if schedule is under expectation. `false` if not.
+ */
+#define THRD_EXPECTING_SCHEDULE() (!(thrd_next() == CURRENT_THREAD))
+
+/*
  * Init the global query state callback function pointer.
  *
  * Parameters :
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)
diff --git a/secure_fw/spm/ffm/backend_sfn.c b/secure_fw/spm/ffm/backend_sfn.c
index e2154f1..b39d00a 100644
--- a/secure_fw/spm/ffm/backend_sfn.c
+++ b/secure_fw/spm/ffm/backend_sfn.c
@@ -148,7 +148,7 @@
     return EXC_RETURN_THREAD_PSP;
 }
 
-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)
 {
     while (!(p_pt->signals_asserted & signals))
         ;
@@ -156,7 +156,7 @@
     return p_pt->signals_asserted & signals;
 }
 
-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)
 {
     p_pt->signals_asserted |= signal;
 
diff --git a/secure_fw/spm/ffm/interrupt.c b/secure_fw/spm/ffm/interrupt.c
index 0b5e043..7ec611e 100644
--- a/secure_fw/spm/ffm/interrupt.c
+++ b/secure_fw/spm/ffm/interrupt.c
@@ -21,7 +21,6 @@
 
 #include "load/spm_load_api.h"
 #include "ffm/backend.h"
-#include "internal_status_code.h"
 
 extern uintptr_t spm_boundary;
 
@@ -143,7 +142,6 @@
 {
     psa_flih_result_t flih_result;
     struct partition_t *p_part;
-    psa_status_t ret = 0;
 
     if (!p_pt || !p_ildi) {
         tfm_core_panic();
@@ -177,10 +175,10 @@
     }
 
     if (flih_result == PSA_FLIH_SIGNAL) {
-        ret = backend_assert_signal(p_pt, p_ildi->signal);
+        backend_assert_signal(p_pt, p_ildi->signal);
         /* In SFN backend, there is only one thread, no thread switch. */
 #if CONFIG_TFM_SPM_BACKEND_SFN != 1
-        if (ret == STATUS_NEED_SCHEDULE) {
+        if (THRD_EXPECTING_SCHEDULE()) {
             tfm_arch_trigger_pendsv();
         }
 #endif
diff --git a/secure_fw/spm/ffm/psa_api.c b/secure_fw/spm/ffm/psa_api.c
index 7a46c04..1f1c715 100644
--- a/secure_fw/spm/ffm/psa_api.c
+++ b/secure_fw/spm/ffm/psa_api.c
@@ -530,11 +530,11 @@
 }
 
 #if CONFIG_TFM_DOORBELL_API == 1
-psa_status_t tfm_spm_partition_psa_notify(int32_t partition_id)
+void tfm_spm_partition_psa_notify(int32_t partition_id)
 {
     struct partition_t *p_pt = tfm_spm_get_partition_by_id(partition_id);
 
-    return backend_assert_signal(p_pt, PSA_DOORBELL);
+    backend_assert_signal(p_pt, PSA_DOORBELL);
 }
 
 void tfm_spm_partition_psa_clear(void)
diff --git a/secure_fw/spm/include/ffm/backend.h b/secure_fw/spm/include/ffm/backend.h
index d15fdc2..03f2f14 100644
--- a/secure_fw/spm/include/ffm/backend.h
+++ b/secure_fw/spm/include/ffm/backend.h
@@ -55,12 +55,12 @@
 /**
  * \brief Set the wait signal pattern in current partition.
  */
-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);
 
 /**
  * \brief Set the asserted signal pattern in current partition.
  */
-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);
 
 /* The component list, and a MACRO indicate this is not a common global. */
 extern struct partition_head_t partition_listhead;
diff --git a/secure_fw/spm/include/ffm/psa_api.h b/secure_fw/spm/include/ffm/psa_api.h
index 152ba17..868c178 100644
--- a/secure_fw/spm/include/ffm/psa_api.h
+++ b/secure_fw/spm/include/ffm/psa_api.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019-2023, Arm Limited. All rights reserved.
+ * Copyright (c) 2019-2022, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -267,12 +267,11 @@
  *
  * \param[in] partition_id      Secure Partition ID of the target partition.
  *
- * \retval PSA_SUCCESS          Success.
- * \retval PSA_NEED_SCHEDULE    Require schedule thread.
+ * \retval void                 Success.
  * \retval "PROGRAMMER ERROR"   partition_id does not correspond to a Secure
  *                              Partition.
  */
-psa_status_t tfm_spm_partition_psa_notify(int32_t partition_id);
+void tfm_spm_partition_psa_notify(int32_t partition_id);
 
 /**
  * \brief Function body of \ref psa_clear.
