aboutsummaryrefslogtreecommitdiffstats
path: root/os/common/ports/ARMCAx-TZ
diff options
context:
space:
mode:
authorisiora <none@example.com>2018-01-19 15:40:17 +0000
committerisiora <none@example.com>2018-01-19 15:40:17 +0000
commiteecc433c7f28fdca436da8f1bd56eada62ad7e00 (patch)
tree352eec75c0d0b192338fd8d37c17b6d869a76c6a /os/common/ports/ARMCAx-TZ
parent1352272d16639999391b34b5e84eae5887b7b104 (diff)
downloadChibiOS-eecc433c7f28fdca436da8f1bd56eada62ad7e00.tar.gz
ChibiOS-eecc433c7f28fdca436da8f1bd56eada62ad7e00.tar.bz2
ChibiOS-eecc433c7f28fdca436da8f1bd56eada62ad7e00.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11354 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/common/ports/ARMCAx-TZ')
-rw-r--r--os/common/ports/ARMCAx-TZ/chsmc.c7
1 files changed, 6 insertions, 1 deletions
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;