Hi,

On Tue, Nov 29, 2016 at 11:27 AM, Henning Schild
<henning.sch...@siemens.com> wrote:
> commit bfe9b9d2d introduced a workaround for link status detection.
> That workaround seems to cause a tight loop of usbnet_cdc_status being
> called all the time, which in turn prints
> "kevent 11 may have been dropped" in the kernel log all the time.

Thanks for letting me/us know. I spent some time looking into the
problem now and can reproduce it with a fairly recent cdc_ether dongle
that I just got (also Linksys). The cause is that after every
(incoming?) interrupt, usbnet_cdc_status() is called. Each interrupt
contains a USB_CDC_NOTIFY_NETWORK_CONNECTION notification, reporting
that the carrier is on. After my change, this will cause the interface
to be set as down and then up for each interrupt, since the carrier is
already is already available (__LINK_STATE_NOCARRIER is not set). I
also captured the traffic on the correct USB bus and see these
interrupts happening multiple times per second.

When re-testing with the devices I used when developing the patch, I
do not see this behavior. I only see one (with devices I assumed to be
working fine) or two (MF823/910) interrupts. Other than that, it is
mostly bulk transfers.

I don't know which of the two behaviors (if any) are "correct" or what
the best way to solve this problem is. One options is to remove the
code from the generic usbnet_cdc_status() function and move it to a
ZTE-specific status function inside cdc_ether.

-Kristian
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to