Hi,

I've found a strange behaviour of the ARC EMAC driver while doing some
tests on a Rockchip based Radxa Rock board and the following patches
are a try to solve the problem. I'm not sure if they are correct or if
there's a better way to do the same thing, so I'd like to receive some
feedback on this.

The problem I'm facing is that the transmission of a UDP stream from
the device stops immediately with the socket send buffer full and this
seems due to the current implementation of tx reclaiming.

With the two patches below, which do the following:

 - enable tx interrupts, which are used to trigger a napi poll and
   thus a clean of tx ring
 - fix a possible race between xmit and tx clean

everything seems to work properly.

Any comments are welcome,
Beniamino

Beniamino Galvani (2):
  net: arc_emac: enable tx interrupts
  net: arc_emac: prevent reuse of unreclaimed tx descriptors

 drivers/net/ethernet/arc/emac_main.c |   56 +++++++++++++++++++++++-----------
 1 file changed, 38 insertions(+), 18 deletions(-)

-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to