EIO errors on SWI9200 modules

Aleksander Morgado aleksander at aleksander.es
Tue Mar 21 14:06:51 UTC 2017


Hey Bjørn and everyone,

I'm running Linux kernel 4.9.11, and getting a bunch of weird EIO
errors randomly doing QMI operations with modems of the MC73xx family
(SWI9200); I've tested MC7304, MC7330 and MC7354 with new and old
firmwares. I cannot reproduce this issue with MC71xx (SWI9x15) or
MC74xx (SWI9x30) modules.

Reproducible easily with e.g.:

$ while [ 1 ]; do sudo qmicli -d /dev/cdc-wdm2 --dms-get-operating-mode; done
[21 mar 2017, 14:53:18] -Warning ** Error reading from istream: Error
reading from file descriptor: Input/output error
error: couldn't create client for the 'dms' service: CID allocation
failed in the CTL client: Transaction timed out
[/dev/cdc-wdm2] Operating mode retrieved:
Mode: 'online'
HW restricted: 'no'
[/dev/cdc-wdm2] Operating mode retrieved:
Mode: 'online'
HW restricted: 'no'
[/dev/cdc-wdm2] Operating mode retrieved:
Mode: 'online'
HW restricted: 'no'
[21 mar 2017, 14:53:29] -Warning ** Error reading from istream: Error
reading from file descriptor: Input/output error
...

I was going to ask if this has ever been seen before, as it was new to
me in my memory, and then I googled for it and found this old thread:

https://lists.freedesktop.org/archives/libqmi-devel/2014-March/000734.html

Quoting Bjørn:

"What we know is:

 - At some point wdm_in_callback() is called with urb->status == -EPIPE.
 - the pending wdm_read() sees desc->rerr being non-zero (-EPIPE) and
   returns -EIO to userspace"

It's a bit unfortunate, because on -EIO we force the QmiDevice to get
closed. Is there a better way to handle this? If there's nothing to
fix in the kernel-side, should we maybe ignore -EIO errors and just
warn about them, nothing else?


-- 
Aleksander
https://aleksander.es


More information about the libqmi-devel mailing list