After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 697584 - [MM 0.8] AT port in a Sierra Wireless MC7700 gets stuck after re-opening
[MM 0.8] AT port in a Sierra Wireless MC7700 gets stuck after re-opening
Status: RESOLVED NOTGNOME
Product: NetworkManager
Classification: Platform
Component: ModemManager
git master
Other Linux
: Normal normal
: ---
Assigned To: NetworkManager maintainer(s)
NetworkManager maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2013-04-08 18:12 UTC by Aleksander Morgado
Modified: 2013-05-10 16:05 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
MM debug logs (68.07 KB, text/plain)
2013-04-08 18:12 UTC, Aleksander Morgado
Details

Description Aleksander Morgado 2013-04-08 18:12:38 UTC
Created attachment 240972 [details]
MM debug logs

Port probing goes ok, but as soon as we fully close the primary AT port (ttyUSB6 in the logs), when re-opening it doesn't respond to AT commads, gets fully stuck. See attached log.
Comment 1 Aleksander Morgado 2013-04-08 18:13:20 UTC
Oh, dmesg shows some interesting logs:

[50609.419918] usb 1-1.2: new high-speed USB device number 26 using ehci-pci
[50609.507131] usb 1-1.2: config 1 has an invalid interface number: 7 but max is 5
[50609.507138] usb 1-1.2: config 1 has no interface number 5
[50609.509555] usb 1-1.2: New USB device found, idVendor=1199, idProduct=68a3
[50609.509563] usb 1-1.2: New USB device strings: Mfr=3, Product=2, SerialNumber=4
[50609.509568] usb 1-1.2: Product: MC7700
[50609.509572] usb 1-1.2: Manufacturer: Sierra Wireless, Incorporated
[50609.509576] usb 1-1.2: SerialNumber: 012626000249753
[50609.511618] sierra 1-1.2:1.0: Sierra USB modem converter detected
[50609.512256] usb 1-1.2: Sierra USB modem converter now attached to ttyUSB3
[50609.512394] sierra 1-1.2:1.1: Sierra USB modem converter detected
[50609.512927] usb 1-1.2: Sierra USB modem converter now attached to ttyUSB4
[50609.513049] sierra 1-1.2:1.2: Sierra USB modem converter detected
[50609.513983] usb 1-1.2: Sierra USB modem converter now attached to ttyUSB5
[50609.514101] sierra 1-1.2:1.3: Sierra USB modem converter detected
[50609.515068] usb 1-1.2: Sierra USB modem converter now attached to ttyUSB6
[50609.515203] sierra 1-1.2:1.4: Sierra USB modem converter detected
[50609.515897] usb 1-1.2: Sierra USB modem converter now attached to ttyUSB7
[50609.519256] sierra_net 1-1.2:1.7 wwan1: register 'sierra_net' at usb-0000:00:1a.0-1.2, Sierra Wireless USB-to-WWAN Modem, aa:a0:90:08:06:07
[50685.664492] sierra_net 1-1.2:1.7 wwan1: Submit SYNC failed -32
[50685.664500] sierra_net 1-1.2:1.7 wwan1: Send SYNC failed, status -32
[50685.665589] sierra_net 1-1.2:1.7 wwan1: Submit SYNC failed -32
[50685.665595] sierra_net 1-1.2:1.7 wwan1: Send SYNC failed, status -32
[50687.668219] sierra_net 1-1.2:1.7 wwan1: Submit SYNC failed -32
[50687.668228] sierra_net 1-1.2:1.7 wwan1: Send SYNC failed, status -32
...
(many more like that)
Comment 2 Dan Williams 2013-04-08 20:48:28 UTC
It's actually the firmware crashing because it's being told to restart continuously by the driver.  I've been slowly working on patches for this that need another revision.

Original thread:
http://comments.gmane.org/gmane.linux.usb.general/50135

Current patches:
http://permalink.gmane.org/gmane.linux.network/263862
http://permalink.gmane.org/gmane.linux.usb.general/83937

The long description:

The driver sends a SYNC message to the device, and the device is expected to reply to the driver with a RESTART indication.  The driver will continue to send the SYNC message to the device (which presumably restarts the device and initializes the firmware) every two seconds until it receives a RESTART indication.  The SYNC message is sent via the normal endpoints, but the RESTART indication comes via the Interrupt endpoint.

Unfortunately, the usbnet driver only enables the interrupt endpoint when the net interface is "up" (eg IFFUP), but that's not necessarily the case since interfaces are not up by default.  So of course since the interface is !IFF_UP, the driver continues sending SYNC requests, and eventually the firmware crashes because it's been asked to restart too often.

The solution is to allow the sierra_net driver to open the interrupt endpoint at driver bind time so it can receive the RESTART indication and stop sending SYNC messages.

If you want to work around it, you can set the net interface IFFUP immediately after plugging in the device.

But in the end, this is a kernel bug, not an MM bug.
Comment 3 Dan Williams 2013-05-10 16:05:35 UTC
These patches were merged by davem for the 3.10 kernel:

6eecdc5f95a393cb558503123eae9a9a6642e835
usbnet: allow status interrupt URB to always be active

7b0c5f21f348a66de495868b8df0284e8dfd6bbf
sierra_net: keep status interrupt URB active

which should fix the firmware crashes you're seeing.