Hi,
I'm using a Telit modem with an i.mx28 processor. I'm currently running
a 2.6.35 kernel on that (I know, it's pretty old, and on an other
thread, I'm working on the v3 also). The modem is using the cdc-acm driver.
I can reproduce the problem easiest, if I'm running the following loop:
/ # while [ 1 ]; do echo -en "AT+GCAP\r" > /dev/ttyUSB2; done
So basically open the port, write something onto it, don't read the
answer, immediately close the port. After a few loops, I get the
following error:
fsl-ehci fsl-ehci.0: fatal error
fsl-ehci fsl-ehci.0: fatal command 010038 (park)=0 ithresh=1 Async
Periodic period=256 HALT
fsl-ehci fsl-ehci.0: fatal status cd0b9 Async Periodic Halt IAA FATAL
FLR INT
fsl-ehci fsl-ehci.0: reset command 01003a (park)=0 ithresh=1 Async
Periodic period=256 Reset HALT
option: option_instat_callback: error -108
usb 2-1: unlink qh2-0001/c2852c00 start 1 [2/0 us]
option: option_instat_callback: error -108
usb 2-1: unlink qh2-0001/c2852d80 start 0 [2/0 us]
fsl-ehci fsl-ehci.0: force halt; handshake c48e6144 00004000 00004000 ->
-110
fsl-ehci fsl-ehci.0: HC died; cleaning up
hub 2-0:1.0: state 0 ports 1 chg 0000 evt 0000
usb 2-1: USB disconnect, address 2
usb 2-1: unregistering device
usb 2-1: unregistering interface 2-1:1.0
option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
option 2-1:1.0: device disconnected
usb 2-1: unregistering interface 2-1:1.1
option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1
option 2-1:1.1: device disconnected
usb 2-1: unregistering interface 2-1:1.2
option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2
option 2-1:1.2: device disconnected
usb 2-1: unregistering interface 2-1:1.3
option1 ttyUSB3: GSM modem (1-port) converter now disconnected from ttyUSB3
option 2-1:1.3: device disconnected
usb 2-1: usb_disable_device nuking all URBs
FEC: MDIO read timeout
FEC: MDIO read timeout
(Somehow the USB crashed the Ethernet also, but I assume, that's just a
chip thing...)
I thought, it's because of some queue list error, e.g. an unlinking is
not handled well, and the host controller is trying to read from a freed
up memory space. So I cherry-picked this patch:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=3d037774b42ed677f699b1dce7d548d55f4e4c2b
It helped a lot! I couldn't generate the problem again with the
previously mentioned script. However, the problem is not fixed. Very
rarely, after enumeration, I get fatal error again. I don't know, how I
could reproduce it systematically...
If I revert the previous patch, and also revert this patch:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=b5a3b3d985493c173925907adfebf3edab236fe7
I have the same behavior. I can't reproduce the issue with my script,
but very rarely, it is still crashing. Did anybody meet with this
previously? Any idea?
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html