On 08/01/16 19:17, Conn O'Griofa wrote:

* 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.
This change wasn't sufficient to fix the problem. After examining your changes 
a bit further, there's an issue: your ag71xx_hw_disable function calls 
ag71xx_hw_stop, but the complement function ag71xx_hw_enable doesn't call 
ag71xx_hw_start. Since you're trying to avoid a link adjust, the 
ag71xx_hw_start function never gets called during recovery with your patch.

I tried replacing netif_start_queue(dev) with ag71xx_hw_start(ag) in 
ag71xx_hw_enable. With this change, when the DMA stuck issue occurs, there's no 
longer any tx timeouts logged, but the interface stops responding. Perhaps it's 
also necessary to call ag71xx_fast_reset (which only gets called during a link 
adjust)?

Conn
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to