hso: fix handling of modem port SERIAL_STATE notifications
authorDan Williams <dcbw@redhat.com>
Mon, 6 Jan 2014 16:07:29 +0000 (10:07 -0600)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Jan 2014 21:29:44 +0000 (16:29 -0500)
commite5e97ee956d8c5ed2fc5877d29dee17a6a59de8e
tree4ba164bc41e31004989688f0d0504c84ea5a70ec
parent22d3b76ed7d2a02bca513b113f2613b9b6e61d58
hso: fix handling of modem port SERIAL_STATE notifications

The existing serial state notification handling expected older Option
devices, having a hardcoded assumption that the Modem port was always
USB interface #2.  That isn't true for devices from the past few years.

hso_serial_state_notification is a local cache of a USB Communications
Interface Class SERIAL_STATE notification from the device, and the
USB CDC specification (section 6.3, table 67 "Class-Specific Notifications")
defines wIndex as the USB interface the event applies to.  For hso
devices this will always be the Modem port, as the Modem port is the
only port which is set up to receive them by the driver.

So instead of always expecting USB interface #2, instead validate the
notification with the actual USB interface number of the Modem port.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Tested-by: H. Nikolaus Schaller <hns@goldelico.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/hso.c