aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2015-08-22 09:07:00 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2015-08-22 09:07:00 +0000
commitd8366c2bf5359f7b65e612eb33379fed578c6d91 (patch)
tree920f0e20ac27e4207818fb1e0e280bda895e9ca1
parent3caa603df42e9215259d6d2256da1c3911e7d8ae (diff)
downloadChibiOS-d8366c2bf5359f7b65e612eb33379fed578c6d91.tar.gz
ChibiOS-d8366c2bf5359f7b65e612eb33379fed578c6d91.tar.bz2
ChibiOS-d8366c2bf5359f7b65e612eb33379fed578c6d91.zip
Fixed bug #633 (tentative).
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8232 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--os/hal/osal/nil/osal.c7
-rw-r--r--os/nil/src/nil.c7
-rw-r--r--readme.txt2
3 files changed, 10 insertions, 6 deletions
diff --git a/os/hal/osal/nil/osal.c b/os/hal/osal/nil/osal.c
index 2c500f4b6..f935e6e8c 100644
--- a/os/hal/osal/nil/osal.c
+++ b/os/hal/osal/nil/osal.c
@@ -96,6 +96,10 @@ void osalThreadDequeueAllI(threads_queue_t *tqp, msg_t msg) {
sp->cnt = (cnt_t)0;
tr = nil.threads;
while (cnt < (cnt_t)0) {
+
+ chDbgAssert(tr < &nil.threads[NIL_CFG_NUM_THREADS],
+ "pointer out of range");
+
/* Is this thread waiting on this semaphore?*/
if (tr->u1.semp == sp) {
@@ -105,9 +109,6 @@ void osalThreadDequeueAllI(threads_queue_t *tqp, msg_t msg) {
(void) chSchReadyI(tr, msg);
}
tr++;
-
- chDbgAssert(tr < &nil.threads[NIL_CFG_NUM_THREADS],
- "pointer out of range");
}
}
diff --git a/os/nil/src/nil.c b/os/nil/src/nil.c
index 7d3dab9ce..c57572b23 100644
--- a/os/nil/src/nil.c
+++ b/os/nil/src/nil.c
@@ -713,6 +713,10 @@ void chSemResetI(semaphore_t *sp, cnt_t n) {
sp->cnt = n;
tp = nil.threads;
while (cnt < (cnt_t)0) {
+
+ chDbgAssert(tp < &nil.threads[NIL_CFG_NUM_THREADS],
+ "pointer out of range");
+
/* Is this thread waiting on this semaphore?*/
if (tp->u1.semp == sp) {
@@ -722,9 +726,6 @@ void chSemResetI(semaphore_t *sp, cnt_t n) {
(void) chSchReadyI(tp, MSG_RESET);
}
tp++;
-
- chDbgAssert(tp < &nil.threads[NIL_CFG_NUM_THREADS],
- "pointer out of range");
}
}
diff --git a/readme.txt b/readme.txt
index 8b9cded9b..f56eb63bf 100644
--- a/readme.txt
+++ b/readme.txt
@@ -95,6 +95,8 @@
- HAL: Introduced support for TIM21 and TIM22 in STM32 ST driver.
- HAL: Updated STM32F0xx headers to STM32CubeF0 version 1.3.0. Added support
for STM32F030xC, STM32F070x6, STM32F070xB devices.
+- NIL: Fixed Wrong assertion in NIL chSemResetI() and NIL OSAL
+ osalThreadDequeueAllI() (bug #633)(backported to 3.0.2).
- RT: Fixed problem with RT mutexes involving priority inheritance (bug #632)
(backported to 3.0.2 and 2.6.10).
- HAL: Fixed HAL to RT dependency in STM32 DAC driver (bug #631)(backported