linux/drivers/usb/serial
Peter E. Berger dcb8e99dbc USB: io_ti: Add firmware image sanity checks
Do what we can to verify that the driver's firmware image is valid
(before attempting to download it to the Edgeport) by adding a new
function, check_fw_sanity(), and a call to it in in download_fw().

Note: It looks like some Edgeports (models like the EP/416 with on-board
E2PROM) may be able to function even if the on-disk firmware image is
bad or missing, iff their local E2PROM versions are valid.  But most
Edgeport models (I've tried EP/1 and EP/8) do not appear to have this
capability and they always rely on the on-disk firmware image.

I tested an implementation that calls the new check_fw_sanity()
function at the top of download_fw() and, rather than simply returning
an error if the firmware image is bad or missing, it saves the result
and defers the decision until later when it may find that it is running
on a E2PROM-equipped device with a valid image.  But I think this is
messier than it is worth (adding still more messiness to the already
very messy download_fw()) for such a marginal possible benefit.  So, at
least for now, I have chosen the much simpler approach of returning an
error whenever edge_startup() fails to load an on-disk firmware image, or
check_fw_sanity() indicates that it is unusable.

Signed-off-by: Peter E. Berger <pberger@brimson.com>
[johan: drop redundant checksum mask ]
Signed-off-by: Johan Hovold <johan@kernel.org>
2015-07-31 12:09:41 +02:00
..
aircable.c USB: serial: correct spelling mistakes in comments 2014-01-03 12:39:31 -08:00
ark3116.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
belkin_sa.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
belkin_sa.h
bus.c USB: serial: clean up bus probe error handling 2015-02-26 17:13:05 +01:00
ch341.c USB-serial updates for v4.1-rc1 2015-04-03 18:59:34 +02:00
console.c USB: console: add dummy __module_get 2015-02-26 17:06:39 +01:00
cp210x.c USB: cp210x: add ID for Aruba Networks controllers 2015-07-06 13:50:30 +02:00
cyberjack.c USB: serial: add missing newlines to dev_<level> messages. 2014-03-12 12:44:50 -07:00
cypress_m8.c USB: serial: add missing newlines to dev_<level> messages. 2014-03-12 12:44:50 -07:00
cypress_m8.h USB: cypress_m8: only wake up MSR queue on changes 2014-01-03 12:42:24 -08:00
digi_acceleport.c usb: serial: Remove unused tty->hw_stopped 2014-09-23 21:19:35 -07:00
empeg.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
ezusb_convert.pl
f81232.c USB: f81232: fix some minor style issues 2015-03-27 17:36:29 +01:00
ftdi_sio_ids.h USB: serial: ftdi_sio: Fix broken URL in comment 2015-07-20 10:30:24 +02:00
ftdi_sio.c USB: serial: ftdi_sio: Add support for a Motion Tracker Development Board 2015-05-21 16:41:51 +02:00
ftdi_sio.h
garmin_gps.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
generic.c USB: serial: fix infinite wait_until_sent timeout 2015-03-07 03:44:14 +01:00
io_16654.h
io_edgeport.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
io_edgeport.h
io_ionsp.h
io_tables.h USB: io_edgeport: switch to generic TIOCMIWAIT implementation 2013-03-25 13:50:53 -07:00
io_ti.c USB: io_ti: Add firmware image sanity checks 2015-07-31 12:09:41 +02:00
io_ti.h
io_usbvend.h USB: io_ti: fix firmware download on big-endian machines (part 2) 2014-05-27 15:12:57 -07:00
ipaq.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
ipw.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
ir-usb.c USB: serial: remove redundant OOM messages 2014-01-03 12:31:46 -08:00
iuu_phoenix.c USB: serial: add missing newlines to dev_<level> messages. 2014-03-12 12:44:50 -07:00
iuu_phoenix.h
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2015-06-23 14:08:54 -07:00
keyspan_pda.c USB: keyspan_pda: add new device id 2015-03-19 18:04:01 +01:00
keyspan_usa26msg.h USB: serial: correct spelling mistakes in comments 2014-01-03 12:39:31 -08:00
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c USB: keyspan: fix null-deref at probe 2015-01-02 15:12:28 +01: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 klsi_105_tiocmset function 2014-07-09 15:44:06 -07:00
kl5kusb105.h
kobil_sct.c USB-serial updates for v3.19-rc1 2014-11-26 10:41:46 -08:00
kobil_sct.h
Makefile USB: serial: remove zte_ev driver 2014-09-15 18:43:08 +02:00
Makefile-keyspan_pda_fw
mct_u232.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
mct_u232.h
metro-usb.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
mos7720.c USB: mos7720: rename registers 2015-07-06 12:15:02 +02:00
mos7840.c USB: serial: mos7840: Use setup_timer 2015-06-01 16:39:41 +02:00
mxuport.c USB: mxuport: fix null deref when used as a console 2015-02-26 17:13:59 +01:00
navman.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
omninet.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
opticon.c USB: opticon: fix non-atomic allocation in write path 2014-11-03 09:07:30 +01:00
option.c USB: option: add 2020:4000 ID 2015-07-06 12:02:03 +02:00
oti6858.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
oti6858.h
pl2303.c USB: pl2303: fix baud-rate divisor calculations 2015-07-30 18:11:07 +02:00
pl2303.h USB: pl2303: Remove support for Samsung I330 2015-04-29 12:34:24 +02:00
qcaux.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
qcserial.c USB: qcserial/option: make AT URCs work for Sierra Wireless MC73xx 2015-01-07 10:12:25 +01:00
quatech2.c USB: serial: add missing newlines to dev_<level> messages. 2014-03-12 12:44:50 -07:00
safe_serial.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
sierra.c USB: sierra: add 1199:68AA device ID 2014-09-01 11:55:30 +02:00
spcp8x5.c USB: serial: add missing newlines to dev_<level> messages. 2014-03-12 12:44:50 -07:00
ssu100.c USB: ssu100: fix overrun-error reporting 2014-11-19 16:22:22 +01:00
symbolserial.c USB: serial: add missing newlines to dev_<level> messages. 2014-03-12 12:44:50 -07:00
ti_usb_3410_5052.c usb: serial: Remove unused tty->hw_stopped 2014-09-23 21:19:35 -07:00
ti_usb_3410_5052.h USB: serial: ti_usb_3410_5052: new device id for Abbot strip port cable 2013-06-19 15:54:45 -07:00
usb_debug.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
usb_wwan.c Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 12:57:53 -07:00
usb-serial-simple.c USB patches for 3.19-rc1 2014-12-14 14:57:16 -08:00
usb-serial.c USB: serial: Destroy serial_minors IDR on module exit 2015-07-09 10:41:23 +02:00
usb-wwan.h USB: usb_wwan: do not resume I/O on closing ports 2014-05-27 15:04:08 -07:00
visor.c USB: visor: Match I330 phone more precisely 2015-04-29 12:36:52 +02:00
visor.h USB: serial: correct spelling mistakes in comments 2014-01-03 12:39:31 -08:00
whiteheat.c USB: whiteheat: Added bounds checking for bulk command response 2014-08-24 14:15:08 -05:00
whiteheat.h
wishbone-serial.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
xsens_mt.c usb: serial: xsens_mt: always bind to interface number 1 2014-09-04 11:18:26 +02:00