All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Hurley <peter@hurleysoftware.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jslaby@suse.cz>,
	linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org,
	Grant Edwards <grant.b.edwards@gmail.com>,
	Peter Hurley <peter@hurleysoftware.com>
Subject: [PATCH 0/8] Replace kernel-defined ASYNC_ bits
Date: Sat,  9 Apr 2016 17:53:19 -0700	[thread overview]
Message-ID: <1460249607-8014-1-git-send-email-peter@hurleysoftware.com> (raw)

As outlined in my January email ("RFC: out-of-tree tty driver breakage"),
the tty/serial core uses 5 bits in the tty_port.flags field to manage
state. They are:

ASYNCB_INITIALIZED
ASYNCB_SUSPENDED
ASYNCB_NORMAL_ACTIVE
ASYNCB_CTS_FLOW
ASYNCB_CHECK_CD

(NB: ASYNC_CLOSING was recently removed)

However, updates to this field (tty_port.flags) can be and often are
non-atomic. Additionally, the field is visible to/modifiable by userspace
(the state bits above are not modifiable by userspace though).

This series moves these state bits into a different tty_port field
(iflags) and abstracts state tests and changes with trivial helpers.

The last patch of the series purposefully breaks out-of-tree driver
builds to ensure they update state test/change methods to the helpers
instead.

REQUIRES: "tty: Replace TTY_IO_ERROR bit tests with tty_io_error()"
          "tty: Replace TTY_THROTTLED bit tests with tty_throttled()"

Regards,

Peter Hurley (8):
  tty: Define ASYNC_ replacement bits
  tty: Replace ASYNC_CTS_FLOW bit and update atomically
  tty: Replace ASYNC_NORMAL_ACTIVE bit and update atomically
  tty: Replace ASYNC_CHECK_CD and update atomically
  tty: Replace ASYNC_SUSPENDED bit and update atomically
  tty: Replace ASYNC_INITIALIZED bit and update atomically
  tty: mxser: Remove unused ASYNC_SHARE_IRQ flag
  tty: core: Undefine ASYNC_* flags superceded by TTY_PORT* flags

 drivers/char/pcmcia/synclink_cs.c   | 25 +++++-------
 drivers/ipack/devices/ipoctal.c     |  5 +--
 drivers/isdn/i4l/isdn_tty.c         | 38 ++++++++----------
 drivers/s390/char/con3215.c         | 22 +++++------
 drivers/tty/amiserial.c             | 31 +++++++--------
 drivers/tty/cyclades.c              | 38 ++++++++----------
 drivers/tty/isicom.c                | 19 ++++-----
 drivers/tty/moxa.c                  | 10 ++---
 drivers/tty/mxser.c                 | 28 +++++---------
 drivers/tty/n_gsm.c                 |  8 ++--
 drivers/tty/rocket.c                | 13 ++++---
 drivers/tty/serial/crisv10.c        | 25 ++++++------
 drivers/tty/serial/serial_core.c    | 40 ++++++++++---------
 drivers/tty/synclink.c              | 65 ++++++++++++++-----------------
 drivers/tty/synclink_gt.c           | 35 +++++++----------
 drivers/tty/synclinkmp.c            | 35 +++++++----------
 drivers/tty/tty_port.c              | 25 ++++++------
 drivers/usb/class/cdc-acm.c         |  4 +-
 drivers/usb/serial/console.c        |  4 +-
 drivers/usb/serial/generic.c        |  6 +--
 drivers/usb/serial/mxuport.c        |  6 +--
 drivers/usb/serial/sierra.c         |  4 +-
 drivers/usb/serial/usb-serial.c     |  2 +-
 drivers/usb/serial/usb_wwan.c       |  4 +-
 include/linux/tty.h                 | 77 ++++++++++++++++++++++++++++++++++++-
 include/uapi/linux/tty_flags.h      | 13 ++++++-
 net/irda/ircomm/ircomm_tty.c        | 29 +++++++-------
 net/irda/ircomm/ircomm_tty_attach.c |  2 +-
 net/irda/ircomm/ircomm_tty_ioctl.c  | 10 ++---
 29 files changed, 320 insertions(+), 303 deletions(-)

-- 
2.8.1

             reply	other threads:[~2016-04-10  0:53 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-10  0:53 Peter Hurley [this message]
2016-04-10  0:53 ` [PATCH 1/8] tty: Define ASYNC_ replacement bits Peter Hurley
2016-04-10  0:53 ` [PATCH 2/8] tty: Replace ASYNC_CTS_FLOW bit and update atomically Peter Hurley
2016-04-10  0:53 ` [PATCH 3/8] tty: Replace ASYNC_NORMAL_ACTIVE " Peter Hurley
2016-04-10  0:53 ` [PATCH 4/8] tty: Replace ASYNC_CHECK_CD " Peter Hurley
2016-04-10  0:53 ` [PATCH 5/8] tty: Replace ASYNC_SUSPENDED bit " Peter Hurley
2016-04-10  0:53 ` [PATCH 6/8] tty: Replace ASYNC_INITIALIZED " Peter Hurley
2016-04-29 10:34   ` Johan Hovold
2016-04-10  0:53 ` [PATCH 7/8] tty: mxser: Remove unused ASYNC_SHARE_IRQ flag Peter Hurley
2016-04-10  0:53 ` [PATCH 8/8] tty: core: Undefine ASYNC_* flags superceded by TTY_PORT* flags Peter Hurley
2016-04-28 20:36 ` [PATCH 0/8] Replace kernel-defined ASYNC_ bits Greg Kroah-Hartman
2016-04-28 20:44   ` Grant Edwards

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=1460249607-8014-1-git-send-email-peter@hurleysoftware.com \
    --to=peter@hurleysoftware.com \
    --cc=grant.b.edwards@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jslaby@suse.cz \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.