diff mbox

[v1] e1000e: honor pause autoneg flag

Message ID 98ea4a6a8e42ffa454d5d42749262e8df02c0167.1405462125.git.decot@googlers.com
State Awaiting Upstream, archived
Delegated to: David Miller
Headers show

Commit Message

David Decotigny July 15, 2014, 10:09 p.m. UTC
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@googlers.com>
---
 drivers/net/ethernet/intel/e1000e/mac.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Kirsher, Jeffrey T July 16, 2014, 9:23 a.m. UTC | #1
On Tue, 2014-07-15 at 15:09 -0700, David Decotigny wrote:
> 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@googlers.com>
> ---
>  drivers/net/ethernet/intel/e1000e/mac.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)

Thanks David, I will add your patch to my queue.

> 
> 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.
>  		 */
diff mbox

Patch

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.
 		 */