Patch "net: alx: use custom skb allocator" has been added to the 4.6-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
net: alx: use custom skb allocator
to the 4.6-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
net-alx-use-custom-skb-allocator.patch
and it can be found in the queue-4.6 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Fri Jun 17 08:34:39 PDT 2016
From: Feng Tang <[email protected]>
Date: Wed, 25 May 2016 14:49:54 +0800
Subject: net: alx: use custom skb allocator
From: Feng Tang <[email protected]>
[ Upstream commit 26c5f03b2ae8018418ceb25b2e6a48560e8c2f5b ]
This patch follows Eric Dumazet's commit 7b70176421 for Atheros atl1c driver to fix one exactly same bug in alx driver, that the network link will be lost in 1-5 minutes after the device is up.
My laptop Lenovo Y580 with Atheros AR8161 ethernet device hit the same problem with kernel 4.4, and it will be cured by Jarod Wilson's commit c406700c for alx driver which get merged in 4.5. But there are still some alx devices can't function well even with Jarod's patch, while this patch could make them work fine. More details on
https://bugzilla.kernel.org/show_bug.cgi?id=70761
The debug shows the issue is very likely to be related with the RX DMA address, specifically 0x...f80, if RX buffer get 0x...f80 several times, their will be RX overflow error and device will stop working.
For kernel 4.5.0 with Jarod's patch which works fine with my AR8161/Lennov Y580, if I made some change to the
__netdev_alloc_skb --> __alloc_page_frag()
to make the allocated buffer can get an address with 0x...f80, then the same error happens. If I make it to 0x...f40 or 0x....fc0, everything will be still fine. So I tend to believe that the 0x..f80 address cause the silicon to behave abnormally.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=70761
--- drivers/net/ethernet/atheros/alx/alx.h | 4 ++ drivers/net/ethernet/atheros/alx/main.c | 48 +++++++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-)
drivers/net/ethernet/atheros/alx/alx.h +4 -0
@@ -96,6 +96,10 @@ struct alx_priv {unsigned int rx_ringsz;unsigned int rxbuf_size; +struct page *rx_page; +unsigned int rx_page_offset; +unsigned int rx_frag_size; +struct napi_struct napi;struct alx_tx_queue txq;struct alx_rx_queue rxq;
drivers/net/ethernet/atheros/alx/main.c +47 -1
103 lines not on this page · raw message
Patches currently in stable-queue which might be from [email protected] are
queue-4.6/net-alx-use-custom-skb-allocator.patch