[git pull] tty ioctl cleanups and fixes

From: Al Viro
Date: Tue Oct 23 2018 - 00:08:05 EST


compat_ioctl work related to tty ioctls. Quite a bit of dead
code taken out, all tty-related stuff gone from fs/compat_ioctl.c.
A bunch of compat bugs fixed - some still remain, but all more or less
generic tty-related ioctls should be covered (remaining issues are in
things like driver-private ioctls in a pcmcia serial card driver not
getting properly handled in 32bit processes on 64bit host, etc.)

Posted, ACKed by tty maintainers, sat in -next for weeks now.

The following changes since commit 5b394b2ddf0347bef56e50c69a58773c94343ff3:

Linux 4.19-rc1 (2018-08-26 14:11:59 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.tty-ioctl

for you to fetch changes up to ce5a983191ce466cbe35e240ac09e28cca3e50c9:

kill TIOCSERGSTRUCT (2018-10-13 00:50:53 -0400)

----------------------------------------------------------------
Al Viro (53):
presence of RS485 ioctls has been unconditional since 2014
move compat handling of tty ioctls to tty_compat_ioctl()
tty_ioctl(): drop FIONBIO handling
mos7720: bury dead TIOCM... in ->ioctl()
tty_ioctl(): start taking TIOC[SG]SERIAL into separate methods
simserial: switch to ->[sg]et_serial()
fwserial: switch to ->[sg]et_serial()
greybus/uart: switch to ->[sg]et_serial()
amiserial: switch to ->[sg]et_serial()
cyclades: switch to ->[sg]et_serial()
ipwireless: switch to ->[sg]et_serial()
isicom: switch to ->[sg]et_serial()
moxa: switch to ->[sg]et_serial()
mxser: switch to ->[sg]et_serial()
serial_core: switch to ->[sg]et_serial()
rfcomm: get rid of mentioning TIOC[SG]SERIAL
usb-serial: begin switching to ->[sg]et_serial()
cdc-acm: switch to ->[sg]et_serial()
ark3116: switch to ->get_serial()
f81232: switch to ->get_serial()
f81534: switch to ->get_serial()
fdti_sio: switch to ->[sg]et_serial()
io_edgeport: switch to ->get_serial()
io_ti: switch to ->get_serial()
mos7720: switch to ->get_serial()
mos7840: switch to ->get_serial()
opticon: switch to ->get_serial()
pl2303: switch to ->get_serial()
quatech2: switch to ->get_serial()
ssu100: switch to ->get_serial()
ti_usb_3410_5052: switch to ->[sg]et_serial()
whiteheat: switch to ->get_serial()
usb_wwan: switch to ->[sg]et_serial()
complete ->[sg]et_serial() switchover
synclink: reduce pointless checks in ->ioctl()
take compat TIOC[SG]SERIAL treatment into tty_compat_ioctl()
kill capinc_tty_ioctl()
isdn_tty: TCSBRK{,P} won't reach ->ioctl()
dgnc: TIOCM... won't reach ->ioctl()
kill the rest of tty COMPAT_IOCTL() entries
dgnc: break-related ioctls won't reach ->ioctl()
remove fallback to drivers for TIOCGICOUNT
dgnc: leave TIOC[GS]SOFTCAR to ldisc
dgnc: don't bother with (empty) stub for TCXONC
gigaset: don't try to printk userland buffer contents
vt_compat_ioctl(): clean up, use compat_ptr() properly
gigaset: add ->compat_ioctl()
compat_ioctl - kill keyboard ioctl handling
pty: fix compat ioctls
synclink_gt(): fix compat_ioctl()
kill TIOCSER[SG]WILD
change semantics of ldisc ->compat_ioctl()
kill TIOCSERGSTRUCT

arch/ia64/hp/sim/simserial.c | 24 ++--
drivers/bluetooth/hci_ldisc.c | 1 +
drivers/char/pcmcia/synclink_cs.c | 3 +-
drivers/input/serio/serport.c | 2 +-
drivers/isdn/capi/capi.c | 7 --
drivers/isdn/gigaset/interface.c | 13 +-
drivers/isdn/i4l/isdn_tty.c | 19 ---
drivers/net/hamradio/6pack.c | 21 ----
drivers/net/hamradio/mkiss.c | 21 ----
drivers/net/slip/slip.c | 25 ----
drivers/net/wan/x25_asy.c | 19 ---
drivers/staging/dgnc/dgnc_tty.c | 218 --------------------------------
drivers/staging/fwserial/fwserial.c | 66 +++++-----
drivers/staging/greybus/uart.c | 47 +++----
drivers/tty/amiserial.c | 90 +++++--------
drivers/tty/cyclades.c | 77 ++++++------
drivers/tty/ipwireless/tty.c | 36 +++---
drivers/tty/isicom.c | 72 ++++-------
drivers/tty/moxa.c | 79 ++++++------
drivers/tty/mxser.c | 97 +++++++-------
drivers/tty/n_gsm.c | 11 --
drivers/tty/n_r3964.c | 22 ++++
drivers/tty/pty.c | 14 ++-
drivers/tty/serial/serial_core.c | 43 ++-----
drivers/tty/synclink.c | 3 +-
drivers/tty/synclink_gt.c | 19 +--
drivers/tty/synclinkmp.c | 3 +-
drivers/tty/tty_io.c | 229 +++++++++++++++++++++++++++-------
drivers/tty/tty_ioctl.c | 16 ---
drivers/tty/vt/vt_ioctl.c | 31 ++---
drivers/usb/class/cdc-acm.c | 41 +++---
drivers/usb/serial/ark3116.c | 38 ++----
drivers/usb/serial/f81232.c | 36 ++----
drivers/usb/serial/f81534.c | 38 ++----
drivers/usb/serial/ftdi_sio.c | 48 ++++---
drivers/usb/serial/io_edgeport.c | 37 +++---
drivers/usb/serial/io_ti.c | 47 +++----
drivers/usb/serial/mos7720.c | 86 ++-----------
drivers/usb/serial/mos7840.c | 39 ++----
drivers/usb/serial/opticon.c | 43 ++-----
drivers/usb/serial/option.c | 3 +-
drivers/usb/serial/pl2303.c | 29 ++---
drivers/usb/serial/quatech2.c | 42 ++-----
drivers/usb/serial/ssu100.c | 42 ++-----
drivers/usb/serial/ti_usb_3410_5052.c | 74 ++++-------
drivers/usb/serial/usb-serial.c | 20 +++
drivers/usb/serial/usb-wwan.h | 6 +-
drivers/usb/serial/usb_wwan.c | 63 +++-------
drivers/usb/serial/whiteheat.c | 42 +++----
fs/compat_ioctl.c | 169 -------------------------
include/linux/tty.h | 2 -
include/linux/tty_driver.h | 3 +
include/linux/tty_ldisc.h | 10 +-
include/linux/usb/serial.h | 2 +
net/bluetooth/rfcomm/tty.c | 12 --
net/nfc/nci/uart.c | 1 +
56 files changed, 779 insertions(+), 1522 deletions(-)