]> git.baikalelectronics.ru Git - kernel.git/commit
net: alx: Work around the DMA RX overflow issue
authorFeng Tang <feng.tang@intel.com>
Sun, 12 Jun 2016 09:36:37 +0000 (17:36 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 14 Jun 2016 19:30:50 +0000 (15:30 -0400)
commit095799e00433dbdd934b7e960cbe051cd55174ab
tree467c3a6ecf09440638b43a72da13ffed7a9a4232
parent9057420a0ee3bd9cba0211be931e70c91e174711
net: alx: Work around the DMA RX overflow issue

Commit 58409b6 uses a new skb allocator to avoid the RFD overflow
issue.

But from debugging without datasheet, we found the error always
happen when the DMA RX address is set to 0x....fc0, which is very
likely to be a HW/silicon problem.

So one idea is instead of adding a new allocator, why not just
hitting the right target by avaiding the error-prone DMA address?

This patch will actually
* Remove the commit 58409b6
* Apply rx skb with 64 bytes longer space, and if the allocated skb
  has a 0x...fc0 address, it will use skb_resever(skb, 64) to
  advance the address, so that the RX overflow can be avoided.

In theory this method should also apply to atl1c driver, which
I can't find anyone who can help to test on real devices.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=70761
Signed-off-by: Feng Tang <feng.tang@intel.com>
Suggested-by: Eric Dumazet <edumazet@google.com>
Tested-by: Ole Lukoie <olelukoie@mail.ru>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/atheros/alx/alx.h
drivers/net/ethernet/atheros/alx/main.c