From eecc433c7f28fdca436da8f1bd56eada62ad7e00 Mon Sep 17 00:00:00 2001 From: isiora Date: Fri, 19 Jan 2018 15:40:17 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11354 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/common/ports/ARMCAx-TZ/chsmc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/os/common/ports/ARMCAx-TZ/chsmc.c b/os/common/ports/ARMCAx-TZ/chsmc.c index ef214d757..8aead3865 100644 --- a/os/common/ports/ARMCAx-TZ/chsmc.c +++ b/os/common/ports/ARMCAx-TZ/chsmc.c @@ -78,7 +78,8 @@ static void smcReleaseService(smc_service_t *svc_handle) { rop = chFactoryFindObjectByPointer(svc_handle); if (rop == NULL) return; - chFactoryReleaseObject(rop); + chFactoryReleaseObject(rop); /* our ref */ + chFactoryReleaseObject(rop); /* original ref */ } #endif @@ -182,6 +183,10 @@ msg_t smcServiceWaitRequest(smc_service_t *svcp) chDbgCheck(svcp != NULL); chSysLock(); + if (_ns_thread) { + /* Ack previous service invocation */ + chThdResumeI(&_ns_thread, MSG_OK); + } r = chThdSuspendTimeoutS(&svcp->svct, TIME_INFINITE); chSysUnlock(); return r; -- cgit v1.2.3