This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 199c301a8e drivers/misc/optee_smc: Explicitly yield during NW 
interrupts
199c301a8e is described below

commit 199c301a8ef2138494fd573adb7935a395c49178
Author: George Poulios <gpoul...@census-labs.com>
AuthorDate: Thu Jul 31 09:41:00 2025 +0300

    drivers/misc/optee_smc: Explicitly yield during NW interrupts
    
    CPU heavy OP-TEE calls would starve the Normal World tasks.
    OP-TEE foreign interrupts were delivered to NW but we would
    resume OP-TEE immediately without giving any potentially
    unblocked tasks a chance to run. This would violate real-
    time guarantees. Fix that by calling sched_yield() during
    OP-TEE return with reason foreign interrupts.
    
    Signed-off-by: George Poulios <gpoul...@census-labs.com>
---
 drivers/misc/optee_smc.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/misc/optee_smc.c b/drivers/misc/optee_smc.c
index 9672f269ac..3d99ccc664 100644
--- a/drivers/misc/optee_smc.c
+++ b/drivers/misc/optee_smc.c
@@ -207,6 +207,10 @@ static void optee_smc_handle_rpc(FAR struct 
optee_priv_data *priv_,
         break;
 
       case OPTEE_SMC_RPC_FUNC_FOREIGN_INTR:
+
+        /* yield to tasks of same priority to avoid starving the NW */
+
+        sched_yield();
         break;
 
       default:

Reply via email to