linux-serial.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH tty-next 00/22] tty/serial fixes for 3.17
@ 2014-06-16 13:16 Peter Hurley
  2014-06-16 13:16 ` [PATCH tty-next 01/22] tty: Document locking for tty driver methods Peter Hurley
                   ` (21 more replies)
  0 siblings, 22 replies; 42+ messages in thread
From: Peter Hurley @ 2014-06-16 13:16 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-serial, linux-kernel, One Thousand Gnomes, Peter Hurley

Hi Greg,

These patches are the accumulation of fixes resulting from audits
of the tty and serial cores; mostly cleanups of open() and close().
Most of the changes remove condition testing and handling which
cannot occur because the tty lock is held for the tty driver open()
call.

The exceptions are the last 3 patches which address API design and
locking issues for uart drivers.

At least 4 known bugs remain:
1. Several drivers mishandle the start_tx() method; I hope to finish
   an audit of these soon for fixing in 3.16.
2. uart_open() mismanages the port count if an error occurs,
   because uart_close() is always called even if open() returns
   an error
3. Most of the port->flags usage is SMP-unsafe; atomics are mixed
   with spinlock-protected updates.
4. uart_remove_one_port() is unsafe, as there is no provision for
   preventing in-use port removal.

Regards,

Peter Hurley (22):
  tty: Document locking for tty driver methods
  tty: Document locking for tty_port_close{,start,end}()
  tty: Document locking for tty_port_open()
  tty: Document locking for tty_port_block_til_ready()
  tty: Document locking for tty_port_hangup()
  tty: Move tty->closing from port lock critical section
  tty: ipwireless: Remove tty->closing abort from ipw_open()
  serial: Use UPF_* constants with struct uart_port flags
  tty: Remove tty_hung_up_p() tests from tty drivers' open()
  char: synclink: Remove WARN_ON for bad port count
  tty: Call hangup method in modern style
  tty: serial: Fix termios/port flags mismatch
  serial: blackfin: Fix CTS flow control
  tty: Remove tty_wait_until_sent_from_close()
  isdn: tty: Use private flag for ASYNC_CLOSING
  tty: mxser: Use tty->closing for ASYNC_CLOSING
  tty: Remove ASYNC_CLOSING
  tty: Move tty hung up check from port->lock critical section
  serial: Style fix
  serial: Refactor uart_flush_buffer() from uart_close()
  serial: core: Remove superfluous ldisc flush from uart_close()
  serial: Fix locking for uart driver set_termios() method

 Documentation/serial/driver          |  6 ++--
 drivers/char/pcmcia/synclink_cs.c    | 11 -------
 drivers/isdn/i4l/isdn_tty.c          | 16 +++++-----
 drivers/s390/char/con3215.c          |  3 +-
 drivers/staging/dgrp/dgrp_tty.c      | 10 -------
 drivers/tty/cyclades.c               |  9 ------
 drivers/tty/hvc/hvc_console.c        |  2 +-
 drivers/tty/hvc/hvcs.c               |  2 +-
 drivers/tty/ipwireless/tty.c         |  5 ----
 drivers/tty/mxser.c                  |  6 ++--
 drivers/tty/rocket.c                 | 14 +--------
 drivers/tty/serial/68328serial.c     |  2 --
 drivers/tty/serial/amba-pl011.c      |  1 +
 drivers/tty/serial/atmel_serial.c    |  2 ++
 drivers/tty/serial/bfin_sport_uart.c | 11 +++++--
 drivers/tty/serial/bfin_uart.c       | 13 ++++----
 drivers/tty/serial/crisv10.c         | 47 ++++-------------------------
 drivers/tty/serial/lantiq.c          |  2 +-
 drivers/tty/serial/mcf.c             |  4 +--
 drivers/tty/serial/serial-tegra.c    |  2 ++
 drivers/tty/serial/serial_core.c     | 31 ++++++++-----------
 drivers/tty/serial/timbuart.c        |  2 ++
 drivers/tty/synclink.c               | 26 ++++------------
 drivers/tty/synclink_gt.c            | 22 +++-----------
 drivers/tty/synclinkmp.c             | 23 +++-----------
 drivers/tty/tty_io.c                 |  2 +-
 drivers/tty/tty_port.c               | 58 ++++++++++++++++++++----------------
 include/linux/isdn.h                 |  1 +
 include/linux/tty.h                  | 18 -----------
 include/linux/tty_driver.h           |  8 +++--
 include/uapi/linux/tty_flags.h       |  2 --
 net/irda/ircomm/ircomm_tty.c         | 39 ++----------------------
 32 files changed, 117 insertions(+), 283 deletions(-)

-- 
2.0.0


^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2014-10-10  8:59 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2014-06-16 13:17 ` [PATCH tty-next 22/22] serial: Fix locking for uart driver set_termios() method Peter Hurley

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).