diff --git a/services/spd/tspd/tspd_main.c b/services/spd/tspd/tspd_main.c index c564f8b..3d06e0b 100644 --- a/services/spd/tspd/tspd_main.c +++ b/services/spd/tspd/tspd_main.c @@ -549,9 +549,10 @@ * preempt Secure execution. However, for * yielding SMCs, we want preemption to happen; * so explicitly allow NS preemption in this - * case. + * case, and supply the preemption return code + * for TSP. */ - ehf_allow_ns_preemption(); + ehf_allow_ns_preemption(TSP_PREEMPTED); #endif } @@ -662,9 +663,10 @@ #if EL3_EXCEPTION_HANDLING /* * Allow the resumed yielding SMC processing to be preempted by - * Non-secure interrupts. + * Non-secure interrupts. Also, supply the preemption return + * code for TSP. */ - ehf_allow_ns_preemption(); + ehf_allow_ns_preemption(TSP_PREEMPTED); #endif /* We just need to return to the preempted point in