| From foo@baz Sun May 27 17:33:38 CEST 2018 |
| From: Benjamin Poirier <bpoirier@suse.com> |
| Date: Tue, 20 Feb 2018 15:12:00 +0900 |
| Subject: e1000e: Fix check_for_link return value with autoneg off |
| |
| From: Benjamin Poirier <bpoirier@suse.com> |
| |
| [ Upstream commit 4e7dc08e57c95673d2edaba8983c3de4dd1f65f5 ] |
| |
| When autoneg is off, the .check_for_link callback functions clear the |
| get_link_status flag and systematically return a "pseudo-error". This means |
| that the link is not detected as up until the next execution of the |
| e1000_watchdog_task() 2 seconds later. |
| |
| Fixes: 19110cfbb34d ("e1000e: Separate signaling for link check/link up") |
| Signed-off-by: Benjamin Poirier <bpoirier@suse.com> |
| Acked-by: Sasha Neftin <sasha.neftin@intel.com> |
| Tested-by: Aaron Brown <aaron.f.brown@intel.com> |
| Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/intel/e1000e/ich8lan.c | 2 +- |
| drivers/net/ethernet/intel/e1000e/mac.c | 2 +- |
| 2 files changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c |
| +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c |
| @@ -1600,7 +1600,7 @@ static s32 e1000_check_for_copper_link_i |
| * we have already determined whether we have link or not. |
| */ |
| if (!mac->autoneg) |
| - return -E1000_ERR_CONFIG; |
| + return 1; |
| |
| /* Auto-Neg is enabled. Auto Speed Detection takes care |
| * of MAC speed/duplex configuration. So we only need to |
| --- a/drivers/net/ethernet/intel/e1000e/mac.c |
| +++ b/drivers/net/ethernet/intel/e1000e/mac.c |
| @@ -450,7 +450,7 @@ s32 e1000e_check_for_copper_link(struct |
| * we have already determined whether we have link or not. |
| */ |
| if (!mac->autoneg) |
| - return -E1000_ERR_CONFIG; |
| + return 1; |
| |
| /* Auto-Neg is enabled. Auto Speed Detection takes care |
| * of MAC speed/duplex configuration. So we only need to |