[PATCH v1] e1000e: honor pause autoneg flag

From: David Decotigny
Date: Tue Jul 15 2014 - 18:09:21 EST


Before:
ifup eth0
ethtool -A eth0 autoneg off rx on
ethtool -a eth0 # rx on, as expected
ifconfig eth0 up
sleep 5
ethtool -a eth0 # rx off, not expected

After:
rx on with iface up, as expected

Signed-off-by: David Decotigny <decot@xxxxxxxxxxxx>
---
drivers/net/ethernet/intel/e1000e/mac.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000e/mac.c b/drivers/net/ethernet/intel/e1000e/mac.c
index 8c386f3a..ef014ae 100644
--- a/drivers/net/ethernet/intel/e1000e/mac.c
+++ b/drivers/net/ethernet/intel/e1000e/mac.c
@@ -1048,7 +1048,8 @@ s32 e1000e_config_fc_after_link_up(struct e1000_hw *hw)
* has completed, and if so, how the PHY and link partner has
* flow control configured.
*/
- if ((hw->phy.media_type == e1000_media_type_copper) && mac->autoneg) {
+ if ((hw->phy.media_type == e1000_media_type_copper) && mac->autoneg &&
+ hw->adapter->fc_autoneg) {
/* Read the MII Status Register and check to see if AutoNeg
* has completed. We read this twice because this reg has
* some "sticky" (latched) bits.
@@ -1191,7 +1192,7 @@ s32 e1000e_config_fc_after_link_up(struct e1000_hw *hw)
* flow control configured.
*/
if ((hw->phy.media_type == e1000_media_type_internal_serdes) &&
- mac->autoneg) {
+ mac->autoneg && hw->adapter->fc_autoneg) {
/* Read the PCS_LSTS and check to see if AutoNeg
* has completed.
*/
--
2.0.0.526.g5318336

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