From 29cdadbc0948fce95be406af92acb6d822ed146e Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Fri, 22 May 2015 00:02:15 +0100 Subject: [PATCH] devtty: update for close semantics --- Kernel/platform-mtx/devtty.c | 3 +++ Kernel/platform-nc100/devtty.c | 2 ++ Kernel/platform-trs80/devtty.c | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Kernel/platform-mtx/devtty.c b/Kernel/platform-mtx/devtty.c index 03c8b846..772b3c7c 100644 --- a/Kernel/platform-mtx/devtty.c +++ b/Kernel/platform-mtx/devtty.c @@ -160,6 +160,9 @@ int mtxtty_close(uint8_t minor) irqflags_t flags; int err = tty_close(minor); + if (tty[minor].users) + return 0; + flags = di(); if (minor == 3) { serialAc = 0x05; diff --git a/Kernel/platform-nc100/devtty.c b/Kernel/platform-nc100/devtty.c index 8745e0ec..11a46094 100644 --- a/Kernel/platform-nc100/devtty.c +++ b/Kernel/platform-nc100/devtty.c @@ -67,6 +67,8 @@ int nc100_tty_open(uint8_t minor, uint16_t flag) int nc100_tty_close(uint8_t minor) { tty_close(minor); + if (tty[minor].users) + return 0; if (minor == 2) { #ifdef CONFIG_NC200 irqen = 0x18; diff --git a/Kernel/platform-trs80/devtty.c b/Kernel/platform-trs80/devtty.c index ff6d0750..304406b8 100644 --- a/Kernel/platform-trs80/devtty.c +++ b/Kernel/platform-trs80/devtty.c @@ -90,7 +90,7 @@ void tty_setup(uint8_t minor) int trstty_close(uint8_t minor) { - if (minor == 2) + if (minor == 2 &&ttydata[2].users == 0) tr1865_ctrl = 0; /* Drop carrier */ return tty_close(minor); } -- 2.34.1