On 08/01/16 18:48, Conn O'Griofa wrote:

Unfortunately, your proposed patch doesn't work. When I trigger the timeout 
condition, a tx timeout occurs and the interface doesn't recover correctly:

I'm not able to test recompiles for a few hours at least, but:

* After your patch failed, I already tested quick rebuild, changing 
ag71xx_restart_work_func to use:

        rtnl_lock();
        ag71xx_stop(ag->dev);
        ag71xx_open(ag->dev);
        rtnl_unlock();

With that change to your patch, the link adjust was triggered before the tx 
timeout was triggered (expected), but the sirq storm still occurred.

* In ag71xx_hw_enable, netif_start_queue is issued. Since this function is used 
for the fast restart, that should probably be changed to netif_wake_queue so 
that the kernel will check for anything pending in the queue to be sent (which 
is certain to be true). I'll check this as soon as it's possible.

Conn
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to