summaryrefslogtreecommitdiff
path: root/c/src/lib/libc/termios.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libc/termios.c')
-rw-r--r--c/src/lib/libc/termios.c19
1 files changed, 4 insertions, 15 deletions
diff --git a/c/src/lib/libc/termios.c b/c/src/lib/libc/termios.c
index c23da7ab31..3dd122dca1 100644
--- a/c/src/lib/libc/termios.c
+++ b/c/src/lib/libc/termios.c
@@ -324,30 +324,19 @@ rtems_termios_close (void *arg)
drainOutput (tty);
if (tty->device.lastClose)
(*tty->device.lastClose)(tty->major, tty->minor, arg);
- if (tty->forw == NULL) {
+ if (tty->forw == NULL)
rtems_termios_ttyTail = tty->back;
- if ( rtems_termios_ttyTail != NULL ) {
- rtems_termios_ttyTail->forw = NULL;
- }
- }
- else {
+ else
tty->forw->back = tty->back;
- }
- if (tty->back == NULL) {
+ if (tty->back == NULL)
rtems_termios_ttyHead = tty->forw;
- if ( rtems_termios_ttyHead != NULL ) {
- rtems_termios_ttyHead->back = NULL;
- }
- }
- else {
+ else
tty->back->forw = tty->forw;
- }
rtems_semaphore_delete (tty->isem);
rtems_semaphore_delete (tty->osem);
rtems_semaphore_delete (tty->rawOutBufSemaphore);
if (!tty->device.pollRead)
rtems_semaphore_delete (tty->rawInBufSemaphore);
- free (tty->cbuf);
free (tty);
}
rtems_semaphore_release (rtems_termios_ttyMutex);