e1000: test link state conclusively
e1000 was using one particular way to detect link, but with the advent of some of the newer hardware designs using SERDES connections, tests for link must completely cover all cases. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
baa34745fe
commit
be0f071956
@ -1481,13 +1481,13 @@ static int e1000_link_test(struct e1000_adapter *adapter, u64 *data)
|
||||
*data = 0;
|
||||
if (hw->media_type == e1000_media_type_internal_serdes) {
|
||||
int i = 0;
|
||||
hw->serdes_link_down = true;
|
||||
hw->serdes_has_link = false;
|
||||
|
||||
/* On some blade server designs, link establishment
|
||||
* could take as long as 2-3 minutes */
|
||||
do {
|
||||
e1000_check_for_link(hw);
|
||||
if (!hw->serdes_link_down)
|
||||
if (hw->serdes_has_link)
|
||||
return *data;
|
||||
msleep(20);
|
||||
} while (i++ < 3750);
|
||||
|
Reference in New Issue
Block a user