summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/ChangeLog10
-rw-r--r--cpukit/libcsupport/src/termios.c2
2 files changed, 11 insertions, 1 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog
index d4edb25f9e..efce3d7e8f 100644
--- a/cpukit/ChangeLog
+++ b/cpukit/ChangeLog
@@ -1,3 +1,13 @@
+2006-10-25 Jennifer Averett <jennifer@oarcorp.com>
+
+ * libcsupport/src/termios.c: Change attribute of semaphore. It was
+ counting interrupts not acting as a condition synchronization mutex.
+ Since the caller did not always need to obtain the semaphore, it was
+ not being decremented until there was no data. This could occur after
+ hours of running a system and thousands of interrupts. The code in
+ fillBufferQueue would spin until it had consumed all of those
+ semaphore counts.
+
2006-10-23 Joel Sherrill <joel@OARcorp.com>
* configure.ac, score/cpu/Makefile.am: Add bfin.
diff --git a/cpukit/libcsupport/src/termios.c b/cpukit/libcsupport/src/termios.c
index 1917c68735..40c8ba75a6 100644
--- a/cpukit/libcsupport/src/termios.c
+++ b/cpukit/libcsupport/src/termios.c
@@ -259,7 +259,7 @@ rtems_termios_open (
sc = rtems_semaphore_create (
rtems_build_name ('T', 'R', 'r', c),
0,
- RTEMS_COUNTING_SEMAPHORE | RTEMS_PRIORITY,
+ RTEMS_SIMPLE_BINARY_SEMAPHORE | RTEMS_PRIORITY,
RTEMS_NO_PRIORITY,
&tty->rawInBuf.Semaphore);
if (sc != RTEMS_SUCCESSFUL)