linux_dsm_epyc7002/drivers/usb/serial
Johan Hovold 980373b791 USB: serial: add generic TIOCMIWAIT implementation
Add generic TIOCMIWAIT implementation which correctly handles hangup,
USB-device disconnect, does not rely on the deprecated sleep_on
functions and hence does not suffer from the races currently affecting
several usb-serial drivers.

This makes it much easier to add TIOCMIWAIT support to subdrivers as the
tricky details related to hangup and disconnect (e.g. atomicity, that
the private port data may have been freed when woken up, and waking up
processes at disconnect) have been handled once and for all.

To add support to a subdriver, simply set the tiocmiwait-port-operation
field, update the port icount fields and wake up any process sleeping on
the tty-port modem-status-change wait queue on changes.

Note that the tty-port initialised flag can be used to detect
disconnected as the port will be hung up as part of disconnect (and
cannot be reactivated due to the disconnected flag). However, as the
tty-port implementation currently wakes up processes before calling port
shutdown, the tty-hupping flag must also be checked to detect hangup for
now.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-03-25 13:50:51 -07:00
..
aircable.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
ark3116.c USB: ark3116: remove bogus disconnect test in close 2013-03-25 13:44:17 -07:00
belkin_sa.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
belkin_sa.h
bus.c USB: serial: clean up usb-serial bus device removal 2013-03-25 13:48:27 -07:00
ch341.c USB: ch341: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:03 -07:00
console.c USB merge for 3.7-rc1 2012-10-01 13:23:01 -07:00
cp210x.c usb: serial: Add Rigblaster Advantage to device table 2013-03-12 08:54:41 -07:00
cyberjack.c USB: cyberjack: fix disconnect handling 2013-03-25 13:48:26 -07:00
cypress_m8.c USB: cypress_m8: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:03 -07:00
cypress_m8.h
digi_acceleport.c USB: digi_acceleport: remove bogus disconnect test in close 2013-03-25 13:44:17 -07:00
empeg.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
ezusb_convert.pl
f81232.c USB: f81232: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:03 -07:00
ftdi_sio_ids.h USB: ftdi_sio: add Zolix FTDI PID 2013-02-02 13:31:52 +01:00
ftdi_sio.c USB: ftdi_sio: remove obsolete port data refcounting 2013-03-25 13:39:22 -07:00
ftdi_sio.h USB: ftdi_sio: add support for FT-X series devices 2012-03-14 15:43:05 -07:00
funsoft.c USB: serial: funsoft.c: remove debug module parameter 2012-09-14 12:31:27 -07:00
garmin_gps.c USB: garmin_gps: fix memory leak on disconnect 2013-03-21 15:59:02 -07:00
generic.c USB: serial: add generic TIOCMIWAIT implementation 2013-03-25 13:50:51 -07:00
hp4x.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
io_16654.h
io_edgeport.c USB: io_edgeport: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:03 -07:00
io_edgeport.h Fix common misspellings 2011-03-31 11:26:23 -03:00
io_ionsp.h
io_tables.h USB: io_edgeport: fix port-data memory leak 2012-10-17 13:47:58 -07:00
io_ti.c USB: io_ti: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:04 -07:00
io_ti.h
io_usbvend.h
ipaq.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
ipw.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
ir-usb.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
iuu_phoenix.c USB: iuu_phoenix: remove bogus disconnect test in close 2013-03-25 13:44:17 -07:00
iuu_phoenix.h
Kconfig tty/serial patches for 3.9-rc1 2013-02-21 13:41:04 -08:00
keyspan_pda.c USB: keyspan_pda: remove bogus disconnect test in close 2013-03-25 13:44:18 -07:00
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c USB: keyspan: remove bogus disconnect test in close 2013-03-25 13:44:17 -07:00
keyspan.h USB: keyspan: fix NULL-pointer dereferences and memory leaks 2012-10-25 09:37:13 -07:00
kl5kusb105.c USB: kl5kusb105: remove unnecessary urb kill on close 2013-03-25 13:39:22 -07:00
kl5kusb105.h
kobil_sct.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
kobil_sct.h
Makefile usb: add driver for xsens motion trackers 2013-01-25 09:56:54 -08:00
Makefile-keyspan_pda_fw
mct_u232.c USB: mct_u232: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:04 -07:00
mct_u232.h
metro-usb.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
mos7720.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
mos7840.c USB: mos7840: remove bogus disconnect test in close 2013-03-25 13:44:18 -07:00
moto_modem.c USB: serial: rework usb_serial_register/deregister_drivers() 2012-05-08 15:46:14 -07:00
navman.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
omninet.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
opticon.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
option.c USB: added support for Cinterion's products AH6 and PLS8 2013-03-07 12:29:09 +08:00
oti6858.c USB: oti6858: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:04 -07:00
oti6858.h
pl2303.c USB: pl2303: make set_control_lines a port operation 2013-03-25 13:39:22 -07:00
pl2303.h USB: serial: pl2303: rm duplicate id 2011-11-15 10:06:15 -08:00
qcaux.c qcaux: add Franklin U600 2013-03-11 11:09:17 -07:00
qcserial.c qcserial: bind to DM/DIAG port on Gobi 1K devices 2013-03-13 08:50:42 -07:00
quatech2.c Merge 3.9-rc4 into usb-next 2013-03-25 10:05:37 -07:00
safe_serial.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
siemens_mpi.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
sierra.c USB: sierra: remove bogus disconnect test in close 2013-03-25 13:44:18 -07:00
spcp8x5.c USB: spcp8x5: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:05 -07:00
ssu100.c USB: ssu100: remove custom close operation 2013-03-25 13:48:26 -07:00
symbolserial.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
ti_usb_3410_5052.c USB: ti_usb_3410_5052: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:05 -07:00
ti_usb_3410_5052.h USB: serial: ti_usb_3410_5052: Add support for the FRI2 serial console 2012-05-11 15:14:07 -07:00
usb_debug.c USB: serial: rework usb_serial_register/deregister_drivers() 2012-05-08 15:46:14 -07:00
usb_wwan.c USB: usb_wwan: remove bogus disconnect test in close 2013-03-25 13:44:18 -07:00
usb-serial.c USB: serial: add tiocmiwait subdriver operation 2013-03-25 13:50:50 -07:00
usb-wwan.h USB: usb-wwan: fix multiple memory leaks in error paths 2012-10-25 09:37:13 -07:00
visor.c USB: Serial: visor.c: remove debug module parameter 2012-09-18 10:16:28 +01:00
visor.h
vivopay-serial.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
whiteheat.c USB: whiteheat: fix port-data memory leak 2012-10-25 09:36:57 -07:00
whiteheat.h
xsens_mt.c usb: add driver for xsens motion trackers 2013-01-25 09:56:54 -08:00
zio.c USB: serial: rework usb_serial_register/deregister_drivers() 2012-05-08 15:46:14 -07:00
zte_ev.c USB: serial: add zte_ev.c driver 2012-09-13 10:15:14 -07:00