Patch "USB: serial: sierra: fix bogus alternate-setting assumption" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
USB: serial: sierra: fix bogus alternate-setting assumption
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
usb-serial-sierra-fix-bogus-alternate-setting-assumption.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
16620b483eaf7750413bae472f4363b6b959fcaaMon Sep 17 00:00:00 2001
From: Johan Hovold <[email protected]>
Date: Mon, 6 Feb 2017 16:28:14 +0100
Subject: USB: serial: sierra: fix bogus alternate-setting assumption
From: Johan Hovold <[email protected]>
commit 16620b483eaf7750413bae472f4363b6b959fcaa upstream.
Interface numbers do not change when enabling alternate settings as comment and code in this driver suggested.
Remove the confusing comment and redundant retrieval of the interface number in probe, while simplifying and renaming the interface-number helper.
--- drivers/usb/serial/sierra.c | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-)
drivers/usb/serial/sierra.c +5 -23
@@ -137,24 +137,9 @@ static int is_himemory(const u8 ifnum,return 0 ; } -static int sierra_calc_interface (struct usb_serial *serial) +static u8 sierra_interface_num (struct usb_serial *serial) { -int interface; -struct usb_interface *p_interface; -struct usb_host_interface *p_host_interface; - -/* Get the interface structure pointer from the serial struct */ - p_interface = serial->interface; - -/* Get a pointer to the host interface structure */ - p_host_interface = p_interface->cur_altsetting; - -/* read the interface descriptor for this active altsetting -* to find out the interface number we are on -*/ - interface = p_host_interface->desc.bInterfaceNumber; - -return interface; +return serial->interface->cur_altsetting->desc.bInterfaceNumber; } static int sierra_probe(struct usb_serial *serial,
@@ -165,7 +150,7 @@ static int sierra_probe(struct usb_seriau8 ifnum; udev = serial->dev; - ifnum =sierra_calc_interface (serial); + ifnum =sierra_interface_num (serial);/* * If this interface supports more than 1 alternate
@@ -178,9 +163,6 @@ static int sierra_probe(struct usb_seriausb_set_interface (udev, ifnum,1 ); } -/* ifnum could have changed - by calling usb_set_interface */ - ifnum =sierra_calc_interface (serial); -if (is_blacklisted (ifnum, (struct sierra_iface_info *)id->driver_info)) { dev_dbg(&serial->dev->dev,
@@ -342,7 +324,7 @@ static int sierra_send_setup(struct usb_/* If composite device then properly report interface */ if (serial->num_ports ==1 ) { - interface =sierra_calc_interface (serial); + interface =sierra_interface_num (serial);/* Control message is sent only to interfaces with * interrupt_in endpoints */
@@ -916,7 +898,7 @@ static int sierra_port_probe(struct usb_/* Determine actual memory requirements */ if (serial->num_ports ==1 ) {/* Get interface number for composite device */ - ifnum =sierra_calc_interface (serial); + ifnum =sierra_interface_num (serial); himemoryp = &typeB_interface_list; }else {/* This is really the usb-serial port number of the interface
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/usb-serial-mct_u232-fix-modem-status-error-handling.patch queue-4.9/usb-serial-ark3116-fix-open-error-handling.patch queue-4.9/usb-serial-io_edgeport-fix-epic-descriptor-handling.patch queue-4.9/usb-serial-ti_usb_3410_5052-fix-control-message-error-handling.patch queue-4.9/usb-serial-keyspan_pda-fix-receive-sanity-checks.patch queue-4.9/usb-serial-sierra-fix-bogus-alternate-setting-assumption.patch queue-4.9/usb-serial-ssu100-fix-control-message-error-handling.patch queue-4.9/usb-serial-digi_acceleport-fix-incomplete-rx-sanity-check.patch queue-4.9/usb-serial-io_edgeport-fix-descriptor-error-handling.patch queue-4.9/usb-serial-quatech2-fix-control-message-error-handling.patch queue-4.9/usb-serial-ftdi_sio-fix-latency-timer-error-handling.patch