Re: [PATCH 0/8] Replace kernel-defined ASYNC_ bits

From: Greg Kroah-Hartman
Date: Thu Apr 28 2016 - 16:36:47 EST


On Sat, Apr 09, 2016 at 05:53:19PM -0700, Peter Hurley wrote:
> 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()"

Wonderful, thanks for doing this work.

greg k-h