aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2011-03-17 09:01:09 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2011-03-17 09:01:09 +0000
commit47326e33d39ac1086cd0c62a10b0a30428033335 (patch)
tree9a6cf5ec2e52e87375c2de91b75c334026f8572c
parenta1427e9a2201f3b87eace5b11ad64992197dfdf1 (diff)
downloadChibiOS-47326e33d39ac1086cd0c62a10b0a30428033335.tar.gz
ChibiOS-47326e33d39ac1086cd0c62a10b0a30428033335.tar.bz2
ChibiOS-47326e33d39ac1086cd0c62a10b0a30428033335.zip
Fixed bug 3219197.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2822 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--docs/reports/STM32F107-72-GCC.txt4
-rw-r--r--os/kernel/include/chqueues.h6
-rw-r--r--readme.txt1
3 files changed, 7 insertions, 4 deletions
diff --git a/docs/reports/STM32F107-72-GCC.txt b/docs/reports/STM32F107-72-GCC.txt
index 884a1b30e..3240b2663 100644
--- a/docs/reports/STM32F107-72-GCC.txt
+++ b/docs/reports/STM32F107-72-GCC.txt
@@ -98,7 +98,7 @@ Settings: SYSCLK=72, ACR=0x12 (2 wait states)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.1 (Benchmark, messages #1)
---- Score : 249425 msgs/S, 498850 ctxswc/S
+--- Score : 249426 msgs/S, 498852 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.2 (Benchmark, messages #2)
@@ -130,7 +130,7 @@ Settings: SYSCLK=72, ACR=0x12 (2 wait states)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.9 (Benchmark, I/O Queues throughput)
---- Score : 474216 bytes/S
+--- Score : 478964 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.10 (Benchmark, virtual timers set/reset)
diff --git a/os/kernel/include/chqueues.h b/os/kernel/include/chqueues.h
index 1913e8bdd..8a00f404d 100644
--- a/os/kernel/include/chqueues.h
+++ b/os/kernel/include/chqueues.h
@@ -134,7 +134,8 @@ typedef GenericQueue InputQueue;
*
* @iclass
*/
-#define chIQIsFullI(iqp) ((bool_t)(chQSpaceI(iqp) >= chQSizeI(iqp)))
+#define chIQIsFullI(iqp) ((bool_t)(((iqp)->q_wrptr == (iqp)->q_rdptr) && \
+ !chIQIsEmptyI(iqp)))
/**
* @brief Input queue read.
@@ -205,7 +206,8 @@ typedef GenericQueue OutputQueue;
*
* @iclass
*/
-#define chOQIsEmptyI(oqp) ((bool_t)(chQSpaceI(oqp) >= chQSizeI(oqp)))
+#define chOQIsEmptyI(oqp) ((bool_t)(((oqp)->q_wrptr == (oqp)->q_rdptr) && \
+ !chOQIsFullI(oqp)))
/**
* @brief Evaluates to @p TRUE if the specified output queue is full.
diff --git a/readme.txt b/readme.txt
index a86e0265b..d1534bd9b 100644
--- a/readme.txt
+++ b/readme.txt
@@ -71,6 +71,7 @@
*****************************************************************************
*** 2.3.1 ***
+- FIX: Fixed wrong checks in I/O Queues (bug 3219197)(backported to 2.2.3).
- FIX: Fixed invalid assertion in adcConvert() (bug 3205410)(backported
to 2.2.3).
- NEW: Added support for PLL3 in STM32 HAL driver. Note, the format of the