Quectel EP06 modem transmit queue 0 timed out

Aleksander Morgado aleksander at aleksander.es
Sun Aug 2 08:11:58 UTC 2020


Hey,

> I have an EP06 modem installed on an openwrt device running linux
> 4.14.171 using the qmi_wwan driver. This modem experiences occasional
> disconnections that persist until the machine is rebooted. During this
> time the modem does not show in modemmanager, but the /dev/qmi-wwan0
> device is still present. On failure, the dmesg log shows
>
> 59461.330706] ------------[ cut here ]------------
> [59461.330770] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:320
> dev_watchdog+0x16c/0x248
> [59461.334457] NETDEV WATCHDOG: wwan0 (qmi_wwan): transmit queue 0 timed out
> [59461.342555] Modules linked in: qcserial ppp_async option cdc_mbim
> batman_adv ath10k_pci ath10k_core ath usb_wwan sierra_net sierra
> qmi_wwan ppp_generic pl2303 nf_conntrack_ipv6 mac80211 iptable_nat
> ipt_REJECT ipt_MASQUERADE ftdi_sio ebtable_nat ebtable_filter
> ebtable_broute ch341 cfg80211 cdc_ncm xt_time xt_tcpudp xt_state xt_nat
> xt_multiport xt_mark xt_mac xt_limit xt_conntrack xt_comment xt_TCPMSS
> xt_REDIRECT xt_LOG xt_FLOWOFFLOAD usbserial usbnet slhc nf_reject_ipv4
> nf_nat_redirect nf_nat_masquerade_ipv4 nf_conntrack_ipv4 nf_nat_ipv4
> nf_nat nf_log_ipv4 nf_flow_table_hw nf_flow_table nf_defrag_ipv6
> nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack macvlan libcrc32c
> iptable_mangle iptable_filter ip_tables ebtables ebt_vlan ebt_stp
> ebt_redirect ebt_pkttype ebt_mark_m ebt_mark ebt_limit ebt_ip6 ebt_among
> [59461.398220]  ebt_802_3 crc_ccitt compat cdc_wdm cdc_acm act_skbedit
> act_mirred em_u32 cls_u32 cls_tcindex cls_flow cls_route cls_fw sch_tbf
> sch_htb sch_hfsc sch_ingress sg xt_set ip_set_list_set
> ip_set_hash_netiface ip_set_hash_netport ip_set_hash_netnet
> ip_set_hash_net ip_set_hash_netportnet ip_set_hash_mac
> ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_hash_ipport
> ip_set_hash_ipmark ip_set_hash_ip ip_set_bitmap_port ip_set_bitmap_ipmac
> ip_set_bitmap_ip ip_set nfnetlink ip6t_REJECT nf_reject_ipv6 nf_log_ipv6
> nf_log_common ip6table_mangle ip6table_filter ip6_tables x_tables dummy
> ip6_tunnel tunnel6 tun autofs4 usb_storage leds_gpio xhci_plat_hcd
> xhci_pci xhci_hcd dwc3 dwc3_of_simple ahci libahci libata ehci_platform
> sd_mod scsi_mod ehci_hcd ext4 jbd2 mbcache mii crc32c_generic
> [59461.467157] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.14.171 #0
> [59461.489282] Hardware name: Generic DT based system
> [59461.495464] [<c030eeac>] (unwind_backtrace) from [<c030afe8>]
> (show_stack+0x10/0x14)
> [59461.500131] [<c030afe8>] (show_stack) from [<c07659b4>]
> (dump_stack+0x94/0xa8)
> [59461.508056] [<c07659b4>] (dump_stack) from [<c0321dfc>]
> (__warn+0xe8/0x104)
> [59461.515087] [<c0321dfc>] (__warn) from [<c0321e50>]
> (warn_slowpath_fmt+0x38/0x48)
> [59461.521945] [<c0321e50>] (warn_slowpath_fmt) from [<c0699134>]
> (dev_watchdog+0x16c/0x248)
> [59461.529614] [<c0699134>] (dev_watchdog) from [<c03728f0>]
> (call_timer_fn+0x98/0x17c)
> [59461.537766] [<c03728f0>] (call_timer_fn) from [<c0372af0>]
> (expire_timers+0x11c/0x134)
> [59461.545578] [<c0372af0>] (expire_timers) from [<c0372b7c>]
> (run_timer_softirq+0x74/0x180)
> [59461.553290] [<c0372b7c>] (run_timer_softirq) from [<c03015a4>]
> (__do_softirq+0x164/0x338)
> [59461.561540] [<c03015a4>] (__do_softirq) from [<c0326928>]
> (irq_exit+0xd4/0x138)
> [59461.569715] [<c0326928>] (irq_exit) from [<c0360c34>]
> (__handle_domain_irq+0x9c/0xac)
> [59461.576809] [<c0360c34>] (__handle_domain_irq) from [<c030140c>]
> (gic_handle_irq+0x5c/0x90)
> [59461.584817] [<c030140c>] (gic_handle_irq) from [<c030bb4c>]
> (__irq_svc+0x6c/0x90)
> [59461.592933] Exception stack(0xc0a01f40 to 0xc0a01f88)
> [59461.600573] 1f40: 00000001 00000000 00000000 c03144a0 ffffe000
> c0a03cf8 c0a03cac 00000000
> [59461.605609] 1f60: 00000000 00000001 cfffce00 c093ca28 c0a01f88
> c0a01f90 c0308148 c030814c
> [59461.613763] 1f80: 60000013 ffffffff
> [59461.621944] [<c030bb4c>] (__irq_svc) from [<c030814c>]
> (arch_cpu_idle+0x34/0x38)
> [59461.625248] [<c030814c>] (arch_cpu_idle) from [<c0357408>]
> (do_idle+0xdc/0x1a0)
> [59461.632883] [<c0357408>] (do_idle) from [<c0357728>]
> (cpu_startup_entry+0x18/0x1c)
> [59461.639916] [<c0357728>] (cpu_startup_entry) from [<c0900c88>]
> (start_kernel+0x3c0/0x3cc)
> [59461.647667] ---[ end trace c15467bf15142ddc ]---
>
>
> Is this a hardware failure? Is there anything I can do to regain control
> of the modem without a reboot?

This is very likely the modem firmware getting stuck forever. While
the "transmit queue 0 timed out" is a legit message that may in theory
happen without bad effects; in my experience this happens whenever the
device goes silent due to a firmware bug that leaves the device stuck.
I have personally never seen this message associated with any other
case than device firmware problems. If the device is good enough, it
may have its own way to detect the problem and reboot itself,
otherwise it will just get stuck until you power cycle it.

-- 
Aleksander
https://aleksander.es


More information about the libqmi-devel mailing list