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