GNOME Bugzilla – Bug 697584
[MM 0.8] AT port in a Sierra Wireless MC7700 gets stuck after re-opening
Last modified: 2013-05-10 16:05:35 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.
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)
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.
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.