[PATCH 00/16] tty: TIOCSSERIAL fixes and clean ups

Johan Hovold
2021-04-07T10:24:00Z

TIOCSSERIAL is a horrid, underspecified, legacy interface which for most
serial devices is only useful for setting the close_delay and
closing_wait parameters.

This series fixes up the various ways in which driver authors have
gotten the implementation wrong over the years, like, for example,
jiffies conversions, permissions checks and error handling.

The de-facto standard for error handling is to ignore any unsupported
features and immutable parameters (cf. UPF_FIXED_PORT and deprecated
ASYNC flags).

Permission checking should prevent an unprivileged user from changing
anything but the ASYNC_USR flags (and custom divisor) by returning
-EPERM.

These patches are against tty-next, but the staging ones could otherwise
go through either tree.

I'll be sending the corresponding USB fixes separately.

Johan

Johan Hovold (16):
staging: fwserial: fix TIOCSSERIAL jiffies conversions
staging: fwserial: fix TIOCSSERIAL permission check
staging: fwserial: fix TIOCSSERIAL implementation
staging: fwserial: fix TIOCGSERIAL implementation
staging: greybus: uart: fix TIOCSSERIAL jiffies conversions
staging: greybus: uart: fix unprivileged TIOCCSERIAL
staging: greybus: uart: clean up TIOCGSERIAL
tty: amiserial: fix TIOCSSERIAL permission check
tty: amiserial: add missing TIOCSSERIAL jiffies conversions
tty: moxa: fix TIOCSSERIAL jiffies conversions
tty: moxa: fix TIOCSSERIAL permission check
tty: moxa: fix TIOCSSERIAL implementation
tty: mxser: fix TIOCSSERIAL jiffies conversions
tty: mxser: fix TIOCSSERIAL permission check
pcmcia: synclink_cs: drop redundant tty-port initialisation
tty: synclink_gt: drop redundant tty-port initialisation

drivers/char/pcmcia/synclink_cs.c | 2 --
drivers/staging/fwserial/fwserial.c | 19 +++++++++---------
drivers/staging/greybus/uart.c | 16 +++++++--------
drivers/tty/amiserial.c | 25 +++++++++++++++++------
drivers/tty/moxa.c | 21 +++++++++----------
drivers/tty/mxser.c | 31 ++++++++++++++++++++---------
drivers/tty/synclink_gt.c | 2 --
7 files changed, 68 insertions(+), 48 deletions(-)

--
2.26.3