linux/drivers/usb/serial
Dmitry Smirnov b14aa5673e USB: serial: mos7840: fix crash on resume
commit c15a688e49 upstream.

Since commit c49cfa9170 ("USB: serial: use generic method if no
alternative is provided in usb serial layer"), USB serial core calls the
generic resume implementation when the driver has not provided one.

This can trigger a crash on resume with mos7840 since support for
multiple read URBs was added back in 2011. Specifically, both port read
URBs are now submitted on resume for open ports, but the context pointer
of the second URB is left set to the core rather than mos7840 port
structure.

Fix this by implementing dedicated suspend and resume functions for
mos7840.

Tested with Delock 87414 USB 2.0 to 4x serial adapter.

Signed-off-by: Dmitry Smirnov <d.smirnov@inbox.lv>
[ johan: analyse crash and rewrite commit message; set busy flag on
         resume; drop bulk-in check; drop unnecessary usb_kill_urb() ]
Fixes: d83b405383 ("USB: serial: add support for multiple read urbs")
Cc: stable@vger.kernel.org	# 3.3
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-07-18 13:07:41 +02:00
..
aircable.c USB: serial: drop redundant transfer-buffer casts 2020-07-09 09:20:17 +02:00
ark3116.c USB: serial: stop reporting legacy UART types 2021-04-08 09:46:02 +02:00
belkin_sa.c tty: make use of tty_get_{char,frame}_size 2021-06-15 14:03:27 +02:00
belkin_sa.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
bus.c bus: Make remove callback return void 2021-07-21 11:53:42 +02:00
ch341.c USB: serial: ch341: fix disabled rx timer on older devices 2022-09-08 12:28:08 +02:00
console.c USB: serial: console: add support for flow control 2020-07-02 10:38:45 +02:00
cp210x.c USB: serial: cp210x: add pid/vid for TDK NC0110013M and MM0110113M 2024-04-10 16:18:37 +02:00
cyberjack.c USB: serial: make usb_serial_driver::write_room return uint 2021-05-19 10:56:40 +02:00
cypress_m8.c USB: serial: replace symbolic permissions by octal permissions 2021-08-26 09:38:27 +02:00
cypress_m8.h USB: serial: cypress_m8: enable Simply Automated UPB PIM 2020-06-23 09:56:17 +02:00
digi_acceleport.c USB: serial: drop irq-flags initialisations 2021-05-21 15:46:25 +02:00
empeg.c docs: usb: rename files to .rst and add them to drivers-api 2019-06-20 14:28:36 +02:00
ezusb_convert.pl License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
f81232.c USB: serial: f81232: fix division by zero on line-speed change 2022-12-21 17:36:37 +01:00
f81534.c USB: serial: f81534: fix division by zero on line-speed change 2022-12-21 17:36:37 +01:00
ftdi_sio.c USB: serial: ftdi_sio: add support for GMC Z216C Adapter IR-USB 2024-04-10 16:18:37 +02:00
ftdi_sio.h USB: Fix up terminology 2020-07-01 14:04:04 +02:00
ftdi_sio_ids.h USB: serial: ftdi_sio: add support for GMC Z216C Adapter IR-USB 2024-04-10 16:18:37 +02:00
garmin_gps.c USB: serial: replace symbolic permissions by octal permissions 2021-08-26 09:38:27 +02:00
generic.c USB: serial: make usb_serial_driver::chars_in_buffer return uint 2021-05-19 10:56:41 +02:00
io_16654.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
io_edgeport.c USB: serial: io_edgeport: drop unused descriptor helper 2021-07-30 17:15:39 +02:00
io_edgeport.h USB: serial: io_edgeport: drop unused definitions 2021-04-08 09:50:04 +02:00
io_ionsp.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
io_ti.c USB: serial: io_ti: add Agilent E5805A support 2022-06-22 14:22:03 +02:00
io_ti.h USB: serial: io_ti: drop unnecessary packed attributes 2021-04-13 18:23:34 +02:00
io_usbvend.h USB: serial: io_ti: add Agilent E5805A support 2022-06-22 14:22:03 +02:00
ipaq.c USB: serial: replace symbolic permissions by octal permissions 2021-08-26 09:38:27 +02:00
ipw.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
ir-usb.c USB: serial: make usb_serial_driver::write_room return uint 2021-05-19 10:56:40 +02:00
iuu_phoenix.c USB: serial: replace symbolic permissions by octal permissions 2021-08-26 09:38:27 +02:00
iuu_phoenix.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
Kconfig USB: serial: simple: add Nokia phone driver 2022-04-08 14:22:46 +02:00
keyspan.c USB: serial: keyspan: fix memleak on probe errors 2021-11-18 19:16:07 +01:00
keyspan_pda.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
keyspan_usa26msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan_usa28msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan_usa49msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan_usa67msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan_usa90msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
kl5kusb105.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
kl5kusb105.h USB: serial: kl5kusb105: remove KLSI device id 2018-07-11 10:11:29 +02:00
kobil_sct.c USB: serial: make usb_serial_driver::write_room return uint 2021-05-19 10:56:40 +02:00
kobil_sct.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile USB: serial: add MaxLinear/Exar USB to Serial driver 2021-01-21 10:49:37 +01:00
Makefile-keyspan_pda_fw USB: add SPDX identifiers to all remaining Makefiles 2017-11-07 15:53:48 +01:00
mct_u232.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
mct_u232.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
metro-usb.c USB: serial: drop irq-flags initialisations 2021-05-21 15:46:25 +02:00
mos7720.c USB: serial: mos7720: drop buffer-callback sanity checks 2021-05-21 15:46:15 +02:00
mos7840.c USB: serial: mos7840: fix crash on resume 2024-07-18 13:07:41 +02:00
mxuport.c USB: serial: mxuport: drop short control-transfer check 2021-01-18 14:26:14 +01:00
navman.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00
omninet.c USB: serial: omninet: update driver description 2021-05-25 08:59:17 +02:00
opticon.c USB: serial: make usb_serial_driver::chars_in_buffer return uint 2021-05-19 10:56:41 +02:00
option.c USB: serial: option: add Rolling RW350-GL variants 2024-07-18 13:07:41 +02:00
oti6858.c USB: serial: make usb_serial_driver::chars_in_buffer return uint 2021-05-19 10:56:41 +02:00
oti6858.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
pl2303.c USB: serial: pl2303: add support for more HXN (G) types 2022-06-29 09:03:20 +02:00
pl2303.h USB: serial: pl2303: add device id for HP LM930 Display 2022-05-18 10:26:54 +02:00
qcaux.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00
qcserial.c USB: serial: qcserial: add new usb-id for Dell Wireless DW5826e 2024-02-23 08:55:00 +01:00
quatech2.c USB-serial updates for 5.14-rc1 2021-06-24 12:54:28 +02:00
safe_serial.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
sierra.c USB: serial: fix tty-port initialized comments 2022-08-17 14:23:57 +02:00
spcp8x5.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
ssu100.c USB: serial: add generic support for TIOCSSERIAL 2021-04-08 09:46:02 +02:00
symbolserial.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
ti_usb_3410_5052.c USB-serial updates for 5.14-rc1 2021-06-24 12:54:28 +02:00
upd78f0730.c USB: serial: do not use tty class device for debugging 2021-04-09 17:55:21 +02:00
usb-serial-simple.c USB: serial: simple: sort driver entries 2023-08-03 10:22:41 +02:00
usb-serial.c USB: serial: fix tty-port initialized comments 2022-08-17 14:23:57 +02:00
usb-wwan.h USB: serial: make usb_serial_driver::chars_in_buffer return uint 2021-05-19 10:56:41 +02:00
usb_debug.c USB: serial: usb_debug: add new USB device id 2017-11-28 09:54:11 +01:00
usb_wwan.c USB: serial: fix tty-port initialized comments 2022-08-17 14:23:57 +02:00
visor.c docs: usb: rename files to .rst and add them to drivers-api 2019-06-20 14:28:36 +02:00
visor.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
whiteheat.c USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS 2022-05-09 09:14:27 +02:00
whiteheat.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
wishbone-serial.c USB: serial: Remove redundant license text 2017-11-04 11:55:38 +01:00
xr_serial.c USB: serial: xr: add copyright notice 2021-04-13 18:36:39 +02:00
xsens_mt.c USB: serial: fix module-license macros 2017-11-04 11:58:00 +01:00