Patch "gianfar: Fix Tx flow control deactivation" has been added to the 4.12-stable tree
This is a note to let you know that I've just added the patch titled
gianfar: Fix Tx flow control deactivation
to the 4.12-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:
gianfar-fix-tx-flow-control-deactivation.patch
and it can be found in the queue-4.12 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 Thu Sep 14 23:20:23 PDT 2017
From: Claudiu Manoil <[email protected]>
Date: Mon, 4 Sep 2017 10:45:28 +0300
Subject: gianfar: Fix Tx flow control deactivation
From: Claudiu Manoil <[email protected]>
[ Upstream commit 5d621672bc1a1e5090c1ac5432a18c79e0e13e03 ]
The wrong register is checked for the Tx flow control bit,
it should have been maccfg1 not maccfg2.
This went unnoticed for so long probably because the impact is hardly visible, not to mention the tangled code from adjust_link(). First, link flow control (i.e. handling of Rx/Tx link level pause frames) is disabled by default (needs to be enabled via 'ethtool -A'). Secondly, maccfg2 always returns 0 for tx_flow_oldval (except for a few old boards), which results in Tx flow control remaining always on once activated.
--- drivers/net/ethernet/freescale/gianfar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/freescale/gianfar.c +1 -1
@@ -3687,7 +3687,7 @@ static noinline void gfar_update_link_stu32 tempval1 =gfar_read (®s->maccfg1);u32 tempval =gfar_read (®s->maccfg2);u32 ecntrl =gfar_read (®s->ecntrl); -u32 tx_flow_oldval = (tempval &MACCFG1_TX_FLOW ); +u32 tx_flow_oldval = (tempval1 &MACCFG1_TX_FLOW );if (phydev->duplex != priv->oldduplex) {if (!(phydev->duplex))
Patches currently in stable-queue which might be from [email protected] are
queue-4.12/gianfar-fix-tx-flow-control-deactivation.patch