Summary: | mbim-proxy at 100% load when starting ModemManager | ||
---|---|---|---|
Product: | ModemManager | Reporter: | Christian Ehrig <christian.ehrig> |
Component: | general | Assignee: | ModemManager bug user <modemmanager> |
Status: | RESOLVED MOVED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | bjorn, chpatrick, spam, thilo |
Version: | 1.6 | ||
Hardware: | x86-64 (AMD64) | ||
OS: | other | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Christian Ehrig
2017-05-04 22:36:26 UTC
/Additionally I started mbim-proxy now with strace, and in the high cpu load state my terminal is flooded with message like that: poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6, events=POLLIN|POLLPRI}, {fd=7, events=POLLIN}], 4, 145743) = 1 ([{fd=7, revents=POLLIN|POLLERR}]) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6, events=POLLIN|POLLPRI}, {fd=7, events=POLLIN}], 4, 145743) = 1 ([{fd=7, revents=POLLIN|POLLERR}]) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6, events=POLLIN|POLLPRI}, {fd=7, events=POLLIN}], 4, 145743) = 1 ([{fd=7, revents=POLLIN|POLLERR}]) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6, events=POLLIN|POLLPRI}, {fd=7, events=POLLIN}], 4, 145743) = 1 ([{fd=7, revents=POLLIN|POLLERR}]) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6, events=POLLIN|POLLPRI}, {fd=7, events=POLLIN}], 4, 145743) = 1 ([{fd=7, revents=POLLIN|POLLERR}]) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6, events=POLLIN|POLLPRI}, {fd=7, events=POLLIN}], 4, 145743) = 1 ([{fd=7, revents=POLLIN|POLLERR}]) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6, events=POLLIN|POLLPRI}, {fd=7, events=POLLIN}], 4, 145742) = 1 ([{fd=7, revents=POLLIN|POLLERR}]) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6, events=POLLIN|POLLPRI}, {fd=7, events=POLLIN}], 4, 145742) = 1 ([{fd=7, revents=POLLIN|POLLERR}]) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6, events=POLLIN|POLLPRI}, {fd=7, events=POLLIN}], 4, 145742) = 1 ([{fd=7, revents=POLLIN|POLLERR}]) poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=6, events=POLLIN|POLLPRI}, {fd=7, events=POLLIN}], 4, 145742) = 1 ([{fd=7, revents=POLLIN|POLLERR}]) lsof for that process reports: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mbim-prox 5514 root cwd DIR 259,6 4096 7340035 /home/cehrig mbim-prox 5514 root rtd DIR 259,6 4096 2 / mbim-prox 5514 root txt REG 259,6 10776 20978116 /usr/libexec/mbim-proxy mbim-prox 5514 root mem REG 259,6 258840 21107381 /usr/lib64/gvfs/libgvfscommon.so mbim-prox 5514 root mem REG 259,6 206944 21103117 /usr/lib64/gio/modules/libgvfsdbus.so mbim-prox 5514 root mem REG 259,6 14352 21645212 /usr/lib64/gconv/UTF-16.so mbim-prox 5514 root mem REG 259,6 110518032 10094589 /usr/lib64/locale/locale-archive mbim-prox 5514 root mem REG 259,6 18616 21758082 /lib64/libattr.so.1.1.0 mbim-prox 5514 root mem REG 259,6 18976 21109734 /lib64/libuuid.so.1.3.0 mbim-prox 5514 root mem REG 259,6 22976 20722993 /lib64/libcap.so.2.24 mbim-prox 5514 root mem REG 259,6 31568 21658640 /lib64/librt-2.23.so mbim-prox 5514 root mem REG 259,6 271072 21110001 /lib64/libblkid.so.1.1.0 mbim-prox 5514 root mem REG 259,6 10368 21658629 /lib64/libdl-2.23.so mbim-prox 5514 root mem REG 259,6 145480 21366472 /usr/lib64/libudev.so.1.6.6 mbim-prox 5514 root mem REG 259,6 304736 21110101 /lib64/libmount.so.1.1.0 mbim-prox 5514 root mem REG 259,6 84704 21647046 /lib64/libresolv-2.23.so mbim-prox 5514 root mem REG 259,6 92464 21758111 /lib64/libz.so.1.2.11 mbim-prox 5514 root mem REG 259,6 14448 20988949 /usr/lib64/libgmodule-2.0.so.0.5000.3 mbim-prox 5514 root mem REG 259,6 97800 21646810 /lib64/libpthread-2.23.so mbim-prox 5514 root mem REG 259,6 465008 21522348 /lib64/libpcre.so.1.2.8 mbim-prox 5514 root mem REG 259,6 35072 9709486 /usr/lib64/libffi.so.6.0.4 mbim-prox 5514 root mem REG 259,6 39680 20729303 /usr/lib64/libgudev-1.0.so.0.2.0 mbim-prox 5514 root mem REG 259,6 1660816 20987925 /usr/lib64/libgio-2.0.so.0.5000.3 mbim-prox 5514 root mem REG 259,6 1664944 21658295 /lib64/libc-2.23.so mbim-prox 5514 root mem REG 259,6 1127304 20987887 /usr/lib64/libglib-2.0.so.0.5000.3 mbim-prox 5514 root mem REG 259,6 338784 20987844 /usr/lib64/libgobject-2.0.so.0.5000.3 mbim-prox 5514 root mem REG 259,6 225328 20987534 /usr/lib64/libmbim-glib.so.4.2.0 mbim-prox 5514 root mem REG 259,6 152904 21647306 /lib64/ld-2.23.so mbim-prox 5514 root mem REG 259,6 26244 10094587 /usr/lib64/gconv/gconv-modules.cache mbim-prox 5514 root 0u CHR 136,1 0t0 4 /dev/pts/1 mbim-prox 5514 root 1u CHR 136,1 0t0 4 /dev/pts/1 mbim-prox 5514 root 2u CHR 136,1 0t0 4 /dev/pts/1 mbim-prox 5514 root 3u a_inode 0,11 0 7884 [eventfd] mbim-prox 5514 root 4u a_inode 0,11 0 7884 [eventfd] mbim-prox 5514 root 5u unix 0xffff8802931e2400 0t0 260890 @mbim-proxy type=STREAM mbim-prox 5514 root 6u unix 0xffff8802931e0400 0t0 259062 @mbim-proxy type=STREAM mbim-prox 5514 root 7u CHR 180,176 0t0 8058 /dev/cdc-wdm0 mbim-prox 5514 root 8u a_inode 0,11 0 7884 [eventfd] (In reply to Christian Ehrig from comment #0) > I'am on Gentoo and experiencing a critical issue. Since a system update, i > cant use my internal Fibocom WWAN adapter anymore. When starting > ModemManager mbim-proxy goes to high cpu load and i can not establish a > connection through NetworkManager. > > net-misc/modemmanager-1.6.4 > net-libs/libmbim-1.14.0 > What kernel version? I am on 4.10.12 (In reply to Christian Ehrig from comment #3) > I am on 4.10.12 Please retry with kernel 4.10.17 or newer whenever that's available for you. We want to understand whether this may be fixed with the "usb-revert-cdc-wdm-fix-out-of-sync-due-to-missing-notifications.patch" fix pushed to that 4.10.x version. I switched to 4.11.2 three days ago, still the same error pattern. Since I am seeing the nonzero-urb-status message below the first time, here is some additional output from syslog. I'm having all relevant drivers now compiled as modules, but still no success May 30 00:29:09 localhost systemd[1]: Started Modem Manager. May 30 00:29:09 localhost NetworkManager[2445]: <info> [1496096949.4638] ModemManager disappeared from bus May 30 00:29:09 localhost NetworkManager[2445]: <info> [1496096949.4721] ModemManager available in the bus May 30 00:29:10 localhost ModemManager[3941]: opening device... May 30 00:29:10 localhost ModemManager[3941]: cannot connect to proxy: Could not connect: Connection refused May 30 00:29:10 localhost ModemManager[3941]: spawning new mbim-proxy (try 1)... May 30 00:29:11 localhost ModemManager[3941]: [/dev/cdc-wdm0] Read max control message size from descriptors file: 512 May 30 00:29:11 localhost kernel: cdc_mbim 1-3:1.0: nonzero urb status received: -EPIPE May 30 00:29:11 localhost ModemManager[3941]: <info> Creating modem with plugin 'Generic' and '2' ports May 30 00:29:11 localhost ModemManager[3941]: <info> Modem for device at '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3' successfully created I have the same issue. I've bought a ThinkPad T470 with a Fibocom L831-EAU WWAN module, which appears to be an MBIM device. It works fine on Windows, but if I try it on Linux, it doesn't work. I've tried it on NixOS (kernel 4.11.4, libmbim 1.14.0) and Ubuntu 16.04. * NetworkManager can't connect. * If I do `rmmod cdc_mbim; modprobe cdc_mbim`, then `mbimcli --connect` occasionally completes, but dhcpcd can't get an IP afterwards. I also tried to manually set the IP/gateway from mibmcli on the interface, but I can't connect to anything due to "System error". `mbim-network` always seems to fail. * It's probably unrelated, but I was also unable to get pppd to work. I get a "Modem hangup" seemingly after receiving DNS server information. The problems seem to be accompanied by `cdc_mbim 1-6:1.0: nonzero urb status received: -EPIPE` in dmesg. So i had a little time, chasing that issue. The good news is, i know that the cpu load is generated by data_available() from mbim-device.c getting called with no mercy. In my particular case condition & G_IO_ERR returns true at some point (it's always reproducible, see mbim-proxy output below ). Adding a sleep before the return statement brings down cpu load. Bad news is, that i am still getting "Resource temporarily unavailable". Changing that condition to:
if (condition & G_IO_ERR) {
if (self->priv->response &&
self->priv->response->len)
g_byte_array_remove_range (self->priv->response, 0, self->priv->response->len);
g_printerr ("error: %s %s\n",
strerror (errno), self->priv->path );
sleep(1);
return TRUE;
}
results in the following output
[06 Aug 2017, 03:53:33] [Debug] [/dev/cdc-wdm0] Received message (translated)...
>>>>>> Header:
>>>>>> length = 888
>>>>>> type = command-done (0x80000003)
>>>>>> transaction = 15
>>>>>> Fragment header:
>>>>>> total = 1
>>>>>> current = 0
>>>>>> Contents:
>>>>>> status error = 'None' (0x00000000)
>>>>>> service = 'sms' (533fbeeb-14fe-4467-9f90-33a223e56c3f)
>>>>>> cid = 'read' (0x00000002)
error: Resource temporarily unavailable /dev/cdc-wdm0
[06 Aug 2017, 03:53:34] [Debug] Client (6) TX: 888 bytes
error: Resource temporarily unavailable /dev/cdc-wdm0
error: Resource temporarily unavailable /dev/cdc-wdm0
[06 Aug 2017, 03:53:36] [Debug] Client (6) service subscribe list built
[06 Aug 2017, 03:53:36] [Debug] [service 0] a289cc33-bcbb-8b4f-b6b0-133ec2aae6df (basic-connect)
[06 Aug 2017, 03:53:36] [Debug] [service 0] 5 CIDs enabled
[06 Aug 2017, 03:53:36] [Debug] [service 0] [cid 0] 11 (signal-state)
[06 Aug 2017, 03:53:36] [Debug] [service 0] [cid 1] 9 (register-state)
[06 Aug 2017, 03:53:36] [Debug] [service 0] [cid 2] 12 (connect)
[06 Aug 2017, 03:53:36] [Debug] [service 0] [cid 3] 2 (subscriber-ready-status)
[06 Aug 2017, 03:53:36] [Debug] [service 0] [cid 4] 10 (packet-service)
[06 Aug 2017, 03:53:36] [Debug] [service 1] 533fbeeb-14fe-4467-9f90-33a223e56c3f (sms)
[06 Aug 2017, 03:53:36] [Debug] [service 1] 2 CIDs enabled
[06 Aug 2017, 03:53:36] [Debug] [service 1] [cid 0] 2 (read)
[06 Aug 2017, 03:53:36] [Debug] [service 1] [cid 1] 5 (message-store-status)
[06 Aug 2017, 03:53:36] [Debug] Merged service subscribe list built
[06 Aug 2017, 03:53:36] [Debug] [service 0] a289cc33-bcbb-8b4f-b6b0-133ec2aae6df (basic-connect)
[06 Aug 2017, 03:53:36] [Debug] [service 0] all CIDs enabled
[06 Aug 2017, 03:53:36] [Debug] [service 1] 533fbeeb-14fe-4467-9f90-33a223e56c3f (sms)
[06 Aug 2017, 03:53:36] [Debug] [service 1] all CIDs enabled
[06 Aug 2017, 03:53:36] [Debug] [service 2] e550a0c8-5e82-479e-82f7-10abf4c3351f (ussd)
[06 Aug 2017, 03:53:36] [Debug] [service 2] all CIDs enabled
[06 Aug 2017, 03:53:36] [Debug] [service 3] 4bf38476-1e6a-41db-b1d8-bed289c25bdb (phonebook)
[06 Aug 2017, 03:53:36] [Debug] [service 3] all CIDs enabled
[06 Aug 2017, 03:53:36] [Debug] [service 4] d8f20131-fcb5-4e17-8602-d6ed3816164c (stk)
[06 Aug 2017, 03:53:36] [Debug] [service 4] all CIDs enabled
[06 Aug 2017, 03:53:36] [Debug] [service 5] 1d2b5ff7-0aa1-48b2-aa52-50f15767174e (auth)
[06 Aug 2017, 03:53:36] [Debug] [service 5] all CIDs enabled
[06 Aug 2017, 03:53:36] [Debug] [service 6] c08a26dd-7718-4382-8482-6e0d583c4d0e (dss)
[06 Aug 2017, 03:53:36] [Debug] [service 6] all CIDs enabled
[06 Aug 2017, 03:53:36] [Debug] Client (6) TX: 136 bytes
error: Resource temporarily unavailable /dev/cdc-wdm0
error: Resource temporarily unavailable /dev/cdc-wdm0
[06 Aug 2017, 03:53:38] [Debug] [/dev/cdc-wdm0] Sent message...
<<<<<< RAW:
<<<<<< length = 48
<<<<<< data = 03:00:00:00:30:00:00:00:10:00:00:00:01:00:00:00:00:00:00:00:A2:89:CC:33:BC:BB:8B:4F:B6:B0:13:3E:C2:AA:E6:DF:09:00:00:00:00:00:00:00:00:00:00:00
[06 Aug 2017, 03:53:38] [Debug] [/dev/cdc-wdm0] Sent message (translated)...
<<<<<< Header:
<<<<<< length = 48
<<<<<< type = command (0x00000003)
<<<<<< transaction = 16
<<<<<< Fragment header:
<<<<<< total = 1
<<<<<< current = 0
<<<<<< Contents:
<<<<<< service = 'basic-connect' (a289cc33-bcbb-8b4f-b6b0-133ec2aae6df)
<<<<<< cid = 'register-state' (0x00000009)
<<<<<< type = 'query' (0x00000000)
error: Resource temporarily unavailable /dev/cdc-wdm0
error: Resource temporarily unavailable /dev/cdc-wdm0
error: Resource temporarily unavailable /dev/cdc-wdm0
error: Resource temporarily unavailable /dev/cdc-wdm0
error: Resource temporarily unavailable /dev/cdc-wdm0
error: Resource temporarily unavailable /dev/cdc-wdm0
I am continuing investigation tomorrow....
Christian, are you also seeing -EPIPE errors reported in the dmesg output for cdc_mbim? Yes, lots of [ 463.253830] cdc_mbim 1-3:1.0: nonzero urb status received: -EPIPE So, crazy. After kernel update to 4.12.8 I hit the connect button today by accident and was able to get a broadband connection to t-mobile. I was also able to reproduce it by first disconnecting and connecting again. Now – after a reboot – i am having the EPIPE issues again, so i do not think it was related to kernel update. I was able to record syslog output of both the successful and unsuccessful connections. The only difference i see is that the 'modem path' of the successful connection was /org/freedesktop/ModemManager1/Modem/1 (usual unsuccessful connections are using /org/freedesktop/ModemManager1/Modem/0) - but i don't know what that means. Syslog When it worked: Aug 18 15:38:56 localhost NetworkManager[2498]: <info> [1503063536.9110] device (cdc-wdm0): Activation: starting connection 'T-Mobile(Telekom) Default' (b7a335b9-2d24-4d40-ae59-1dcd4b2295be) Aug 18 15:38:56 localhost NetworkManager[2498]: <info> [1503063536.9126] audit: op="connection-activate" uuid="b7a335b9-2d24-4d40-ae59-1dcd4b2295be" name="T-Mobile(Telekom) Default" pid=3826 uid=1000 result="success" Aug 18 15:38:56 localhost NetworkManager[2498]: <info> [1503063536.9132] device (cdc-wdm0): state change: disconnected -> prepare (reason 'none') [30 40 0] Aug 18 15:38:56 localhost NetworkManager[2498]: <info> [1503063536.9159] device (cdc-wdm0): state change: prepare -> need-auth (reason 'none') [40 60 0] Aug 18 15:38:56 localhost NetworkManager[2498]: <info> [1503063536.9287] device (cdc-wdm0): state change: need-auth -> prepare (reason 'none') [60 40 0] Aug 18 15:38:56 localhost ModemManager[2477]: <info> Simple connect started... Aug 18 15:38:56 localhost ModemManager[2477]: <info> Simple connect state (4/8): Wait to get fully enabled Aug 18 15:38:56 localhost ModemManager[2477]: <info> Simple connect state (5/8): Register Aug 18 15:38:56 localhost ModemManager[2477]: <info> Simple connect state (6/8): Bearer Aug 18 15:38:56 localhost ModemManager[2477]: <info> Simple connect state (7/8): Connect Aug 18 15:38:56 localhost ModemManager[2477]: <info> Modem /org/freedesktop/ModemManager1/Modem/1: state changed (registered -> connecting) Aug 18 15:38:56 localhost NetworkManager[2498]: <info> [1503063536.9397] (cdc-wdm0): modem state changed, 'registered' --> 'connecting' (reason: user-requested) Aug 18 15:38:57 localhost ModemManager[2477]: <info> Modem /org/freedesktop/ModemManager1/Modem/1: state changed (connecting -> connected) Aug 18 15:38:57 localhost ModemManager[2477]: <info> Simple connect state (8/8): All done Aug 18 15:38:57 localhost NetworkManager[2498]: <info> [1503063537.2875] (cdc-wdm0): modem state changed, 'connecting' --> 'connected' (reason: user-requested) Aug 18 15:38:57 localhost ModemManager[2477]: <warn> Reloading stats failed: OperationNotAllowed Aug 18 15:38:57 localhost NetworkManager[2498]: <info> [1503063537.2905] device (cdc-wdm0): state change: prepare -> config (reason 'none') [40 50 0] Aug 18 15:38:57 localhost NetworkManager[2498]: <info> [1503063537.2910] device (cdc-wdm0): state change: config -> ip-config (reason 'none') [50 70 0] Aug 18 15:38:57 localhost NetworkManager[2498]: <info> [1503063537.2913] modem-broadband[cdc-wdm0]: IPv4 static configuration: Aug 18 15:38:57 localhost NetworkManager[2498]: <info> [1503063537.2914] modem-broadband[cdc-wdm0]: address 10.30.184.139/24 Aug 18 15:38:57 localhost NetworkManager[2498]: <info> [1503063537.2914] modem-broadband[cdc-wdm0]: gateway 10.30.184.1 Aug 18 15:38:57 localhost NetworkManager[2498]: <info> [1503063537.2914] modem-broadband[cdc-wdm0]: DNS 10.74.210.210 Aug 18 15:38:57 localhost NetworkManager[2498]: <info> [1503063537.2914] modem-broadband[cdc-wdm0]: DNS 10.74.210.211 Aug 18 15:38:57 localhost NetworkManager[2498]: <info> [1503063537.2951] device (cdc-wdm0): state change: ip-config -> ip-check (reason 'none') [70 80 0] Aug 18 15:38:57 localhost NetworkManager[2498]: <info> [1503063537.2958] device (cdc-wdm0): state change: ip-check -> secondaries (reason 'none') [80 90 0] Aug 18 15:38:57 localhost NetworkManager[2498]: <info> [1503063537.2963] device (cdc-wdm0): state change: secondaries -> activated (reason 'none') [90 100 0] Aug 18 15:38:57 localhost NetworkManager[2498]: <info> [1503063537.3046] device (cdc-wdm0): Activation: successful, device activated. Aug 18 15:38:57 localhost dbus-daemon[2478]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service' Aug 18 15:38:57 localhost systemd[1]: Starting Network Manager Script Dispatcher Service... Aug 18 15:38:57 localhost dbus-daemon[2478]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Aug 18 15:38:57 localhost systemd[1]: Started Network Manager Script Dispatcher Service. Aug 18 15:38:57 localhost nm-dispatcher[9688]: req:1 'up' [wwp0s20f0u3]: new request (1 scripts) Aug 18 15:38:57 localhost nm-dispatcher[9688]: req:1 'up' [wwp0s20f0u3]: start running ordered scripts... And business as usual: Aug 18 20:24:16 localhost NetworkManager[2520]: <info> [1503080656.3751] device (cdc-wdm0): Activation: starting connection 'T-Mobile(Telekom) Default' (b7a335b9-2d24-4d40-ae59-1dcd4b2295be) Aug 18 20:24:16 localhost NetworkManager[2520]: <info> [1503080656.3768] audit: op="connection-activate" uuid="b7a335b9-2d24-4d40-ae59-1dcd4b2295be" name="T-Mobile(Telekom) Default" pid=3727 uid=1000 result="success" Aug 18 20:24:16 localhost NetworkManager[2520]: <info> [1503080656.3771] device (cdc-wdm0): state change: disconnected -> prepare (reason 'none') [30 40 0] Aug 18 20:24:16 localhost NetworkManager[2520]: <info> [1503080656.3777] manager: NetworkManager state is now CONNECTING Aug 18 20:24:16 localhost NetworkManager[2520]: <info> [1503080656.3795] device (cdc-wdm0): state change: prepare -> need-auth (reason 'none') [40 60 0] Aug 18 20:24:16 localhost NetworkManager[2520]: <info> [1503080656.3887] device (cdc-wdm0): state change: need-auth -> prepare (reason 'none') [60 40 0] Aug 18 20:24:16 localhost ModemManager[4472]: <info> Simple connect started... Aug 18 20:24:16 localhost ModemManager[4472]: <info> Simple connect state (4/8): Wait to get fully enabled Aug 18 20:24:16 localhost ModemManager[4472]: <info> Simple connect state (5/8): Register Aug 18 20:24:16 localhost ModemManager[4472]: <info> Simple connect state (6/8): Bearer Aug 18 20:24:16 localhost ModemManager[4472]: <info> Simple connect state (7/8): Connect Aug 18 20:24:16 localhost ModemManager[4472]: <info> Modem /org/freedesktop/ModemManager1/Modem/0: state changed (registered -> connecting) Aug 18 20:24:16 localhost NetworkManager[2520]: <info> [1503080656.4063] (cdc-wdm0): modem state changed, 'registered' --> 'connecting' (reason: user-requested) Aug 18 20:24:16 localhost kernel: cdc_mbim 1-3:1.0: nonzero urb status received: -EPIPE Hope that helps. So I'm experiencing the same issue, also on a T470 with a brand new Fibocom L831-EAU. Usually, after boot, I can successfully connect to the Internet, but the connection breaks after a few minutes with the infamous nonzero urb status -EPIPE message. On the kernel mailing list, Bjørn Mork and me started debugging this issue, you can follow the discussion, for example, here: https://marc.info/?l=linux-usb&m=150557558329778&w=2 I only did very brief testing with a kernel fix, but it seems to work for now. The line to change (no patch, sorry) is in the discussion. nice! Thanks for debugging this, the change makes it work for me too. Here's the patch in case you need it: From 9a122496d5edd72014a19bc3d469b7d928c5fefa Mon Sep 17 00:00:00 2001 From: Patrick Chilton <chpatrick@gmail.com> Date: Tue, 19 Sep 2017 19:26:30 +0200 Subject: [PATCH] Fix nonzero URB error. --- drivers/usb/class/cdc-wdm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c index 8fda45a45b..6e526cf00d 100644 --- a/drivers/usb/class/cdc-wdm.c +++ b/drivers/usb/class/cdc-wdm.c @@ -196,7 +196,7 @@ static void wdm_in_callback(struct urb *urb) * only set a new error if there is no previous error. * Errors are only cleared during read/open */ - if (desc->rerr == 0) + if (desc->rerr == 0 && status != -EPIPE) desc->rerr = status; if (length + desc->length > desc->wMaxCommand) { -- 2.12.2 I'm proudly sending this message while being connected to inet through my Fibocom... Thanks for sharing, i patched 4.12.10 and it works perfectly. Thanks to everybody involved. *** Bug 101275 has been marked as a duplicate of this bug. *** -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/41. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.