Skip to contentSkip to conversation

Patch "net: alx: use custom skb allocator" has been added to the 4.6-stable tree

PATCH [email protected] 1 participant 1 message Jun 17, 2016

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

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