linux-serial.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Peter Hurley <peter@hurleysoftware.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org,
	One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
Subject: Re: [PATCH tty-next 21/22] serial: core: Remove superfluous ldisc flush from uart_close()
Date: Fri, 11 Jul 2014 12:15:49 -0400	[thread overview]
Message-ID: <53C00DB5.600@hurleysoftware.com> (raw)
In-Reply-To: <1402924639-5164-22-git-send-email-peter@hurleysoftware.com>

On 06/16/2014 09:17 AM, Peter Hurley wrote:
> The tty_ldisc_flush() after port hardware shutdown is unnecessary;
> the ldisc flush was just performed before the hardware shutdown
> in tty_port_close_start() and the ldisc will be released when
> uart_close() returns (because the last port close implies the
> last tty close).
>
> Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
> ---
>   drivers/tty/serial/serial_core.c | 3 ---
>   1 file changed, 3 deletions(-)
>
> diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
> index 212ee07..15212d7 100644
> --- a/drivers/tty/serial/serial_core.c
> +++ b/drivers/tty/serial/serial_core.c
> @@ -1351,9 +1351,6 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
>
>   	mutex_lock(&port->mutex);
>   	uart_shutdown(tty, state);
> -
> -	tty_ldisc_flush(tty);
> -

This isn't exactly correct. There is a small window of time between the
ldisc flush being performed in tty_port_close_start() and the
subsequent stop_rx() in uart_close(). This might allow for data to be
received, and a racing tty reopen to receive that stale data. Unlikely, but
possible.

>   	tty_port_tty_set(port, NULL);
>   	tty->closing = 0;
>   	spin_lock_irqsave(&port->lock, flags);
>


  reply	other threads:[~2014-07-11 16:15 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-16 13:16 [PATCH tty-next 00/22] tty/serial fixes for 3.17 Peter Hurley
2014-06-16 13:16 ` [PATCH tty-next 01/22] tty: Document locking for tty driver methods Peter Hurley
2014-06-16 13:16 ` [PATCH tty-next 02/22] tty: Document locking for tty_port_close{,start,end}() Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 03/22] tty: Document locking for tty_port_open() Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 04/22] tty: Document locking for tty_port_block_til_ready() Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 05/22] tty: Document locking for tty_port_hangup() Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 06/22] tty: Move tty->closing from port lock critical section Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 07/22] tty: ipwireless: Remove tty->closing abort from ipw_open() Peter Hurley
2014-06-16 14:09   ` David Sterba
2014-06-16 13:17 ` [PATCH tty-next 08/22] serial: Use UPF_* constants with struct uart_port flags Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 09/22] tty: Remove tty_hung_up_p() tests from tty drivers' open() Peter Hurley
2014-06-16 13:52   ` Jesper Nilsson
2014-06-16 13:17 ` [PATCH tty-next 10/22] char: synclink: Remove WARN_ON for bad port count Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 11/22] tty: Call hangup method in modern style Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 12/22] tty: serial: Fix termios/port flags mismatch Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 13/22] serial: blackfin: Fix CTS flow control Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 14/22] tty: Remove tty_wait_until_sent_from_close() Peter Hurley
2014-06-17  8:00   ` Arnd Bergmann
2014-06-17  8:18     ` David Laight
2014-06-17 10:57     ` Peter Hurley
2014-06-17 11:03       ` David Laight
2014-06-17 11:31         ` Arnd Bergmann
2014-06-17 11:54           ` One Thousand Gnomes
2014-06-17 11:32         ` Peter Hurley
2014-07-09 13:57           ` Peter Hurley
2014-10-08  3:56         ` Peter Hurley
2014-10-10  8:58           ` One Thousand Gnomes
2014-07-10 23:09   ` Greg Kroah-Hartman
2014-07-11 15:03     ` Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 15/22] isdn: tty: Use private flag for ASYNC_CLOSING Peter Hurley
2014-06-16 15:37   ` David Laight
2014-06-16 21:01     ` Peter Hurley
2014-06-17 11:58   ` One Thousand Gnomes
2014-06-16 13:17 ` [PATCH tty-next 16/22] tty: mxser: Use tty->closing " Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 17/22] tty: Remove ASYNC_CLOSING Peter Hurley
2014-06-16 13:52   ` Jesper Nilsson
2014-06-16 13:17 ` [PATCH tty-next 18/22] tty: Move tty hung up check from port->lock critical section Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 19/22] serial: Style fix Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 20/22] serial: Refactor uart_flush_buffer() from uart_close() Peter Hurley
2014-06-16 13:17 ` [PATCH tty-next 21/22] serial: core: Remove superfluous ldisc flush " Peter Hurley
2014-07-11 16:15   ` Peter Hurley [this message]
2014-06-16 13:17 ` [PATCH tty-next 22/22] serial: Fix locking for uart driver set_termios() method Peter Hurley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53C00DB5.600@hurleysoftware.com \
    --to=peter@hurleysoftware.com \
    --cc=gnomes@lxorguk.ukuu.org.uk \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).