You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
USBUS cdcecm thread stalls when sending ping and the receiving interface on Linux is down.
I expected an interrupt to happen after a timeout if a transaction fails. In the MCU datasheet I found the TRFAIL interrupt which was not enabled yet. But with this patch when I try to enable it, it is fireing all the time and does not solve the problem.
$ sudo ip link set enxfe76bdf305d8 down
9: enxfe76bdf305d8: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether fe:76:bd:f3:05:d8 brd ff:ff:ff:ff:ff:ff
Description
USBUS cdcecm thread stalls when sending ping and the receiving interface on Linux is down.
I expected an interrupt to happen after a timeout if a transaction fails. In the MCU datasheet I found the
TRFAIL
interrupt which was not enabled yet. But with this patch when I try to enable it, it is fireing all the time and does not solve the problem.cdcecm.patch.txt
Steps to reproduce the issue
Flash
examples/gnrc_networking
tosame54-xpro
witheUSEMODULE+="usbus_cdc_ecm auto_init_usbus"
Interface
7
iscdcecm
.Set interface on Linux side down:
Send ping over
cdcecm
interface.Another
ifconfig
stalls and interface7
doe not show up.The second send blocks the interface thread because there
RIOT/sys/usb/usbus/cdc/ecm/cdc_ecm_netdev.c
Line 78 in 4f55461
a mutex is locked twice without being unlock after a successful transfer, because there is no successful transfer.
Expected results
Even thought the Linux interface is down, RIOT should not stall after sending a ping.
Actual results
RIOT stalls because a mutex is not unlocked, when sending over a
cdcecm
interface when the Linux interface is down.Versions
The text was updated successfully, but these errors were encountered: