android_kernel_xiaomi_sm8350/drivers/usb/serial
David Woodhouse 80193195f8 Fix oops on close of hot-unplugged FTDI serial converter
Commit c45d6320 ("fix reference counting of ftdi_private") stopped
ftdi_sio_port_remove() from directly freeing the port-private data, with
the intention if the port was still open, it would be freed when
ftdi_close() is eventually called and releases the last refcount on the
structure.

That's all very well, but ftdi_sio_port_remove() still contains a call
to usb_set_serial_port_data(port, NULL) -- so by the time we get to
ftdi_close() for the port which was unplugged, it _still_ oopses on
dereferencing that NULL pointer, as it did before (and does in 2.6.29).

The fix is just not to clear the private data in ftdi_sio_port_remove().
Then the refcount is properly reduced to zero when the final kref_put()
happens in ftdi_close().

Remove a bogus comment too, while we're at it. And stop doing things
inside "if (priv)" -- it must _always_ be there.

Based loosely on an earlier patch by Daniel Mack, and suggestions by
Alan Stern.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Tested-by: Daniel Mack <daniel@caiaq.de>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-05-18 08:37:15 -07:00
..
aircable.c
ark3116.c
belkin_sa.c
belkin_sa.h
bus.c
ch341.c USB: usb-serial ch341: support for DTR/RTS/CTS 2009-04-17 10:50:26 -07:00
ChangeLog.history
console.c
cp210x.c
cyberjack.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
cypress_m8.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
cypress_m8.h
digi_acceleport.c
empeg.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
ezusb_convert.pl
ezusb.c
ftdi_sio.c Fix oops on close of hot-unplugged FTDI serial converter 2009-05-18 08:37:15 -07:00
ftdi_sio.h USB: ftdi_sio: add vendor/product id for the Marvell SheevaPlug 2009-05-08 19:34:56 -07:00
funsoft.c
garmin_gps.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
generic.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
hp4x.c
io_16654.h
io_edgeport.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
io_edgeport.h
io_ionsp.h
io_tables.h
io_ti.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
io_ti.h
io_usbvend.h
ipaq.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
ipaq.h
ipw.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
ir-usb.c
iuu_phoenix.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
iuu_phoenix.h
Kconfig
keyspan_pda.c
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c
keyspan.h
kl5kusb105.c
kl5kusb105.h
kobil_sct.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
kobil_sct.h
Makefile
Makefile-keyspan_pda_fw
mct_u232.c
mct_u232.h
mos7720.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
mos7840.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
moto_modem.c USB device codes for Motorola phone. 2009-04-17 10:50:26 -07:00
navman.c
omninet.c
opticon.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
option.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
oti6858.c
oti6858.h
pl2303.c tty: pl2303 needs identifiers for Siemens S81 as well as EF81 2009-04-06 14:36:41 -07:00
pl2303.h tty: pl2303 needs identifiers for Siemens S81 as well as EF81 2009-04-06 14:36:41 -07:00
qcserial.c USB: qcserial: Add extra device IDs 2009-04-17 10:50:24 -07:00
safe_serial.c
siemens_mpi.c
sierra.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
spcp8x5.c
symbolserial.c symbol: Remove various bits of left over junk 2009-04-06 14:36:42 -07:00
ti_usb_3410_5052.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
ti_usb_3410_5052.h
usb_debug.c
usb-serial.c USB: serial: fix lifetime and locking problems 2009-04-23 14:15:26 -07:00
visor.c USB: removal of tty->low_latency hack dating back to the old serial code 2009-04-23 14:15:29 -07:00
visor.h
whiteheat.c
whiteheat.h