From: Krzysztof Galazka <krzysztof.gala...@intel.com> Media type information should not be updated by ixgbe_aci_get_link_info function because it will be incorrectly set as unknown when link is down. Do it only in ixgbe_get_media_type_E610.
Signed-off-by: Krzysztof Galazka <krzysztof.gala...@intel.com> Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com> --- drivers/net/ixgbe/base/ixgbe_e610.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/net/ixgbe/base/ixgbe_e610.c b/drivers/net/ixgbe/base/ixgbe_e610.c index 1f3a4532da..b9b1ba32c3 100644 --- a/drivers/net/ixgbe/base/ixgbe_e610.c +++ b/drivers/net/ixgbe/base/ixgbe_e610.c @@ -1683,7 +1683,6 @@ s32 ixgbe_aci_get_link_info(struct ixgbe_hw *hw, bool ena_lse, struct ixgbe_aci_cmd_get_link_status *resp; struct ixgbe_link_status *li_old, *li; struct ixgbe_fc_info *hw_fc_info; - enum ixgbe_media_type *hw_media_type; struct ixgbe_aci_desc desc; bool tx_pause, rx_pause; u8 cmd_flags; @@ -1693,7 +1692,6 @@ s32 ixgbe_aci_get_link_info(struct ixgbe_hw *hw, bool ena_lse, return IXGBE_ERR_PARAM; li_old = &hw->link.link_info_old; - hw_media_type = &hw->phy.media_type; li = &hw->link.link_info; hw_fc_info = &hw->fc; @@ -1714,7 +1712,6 @@ s32 ixgbe_aci_get_link_info(struct ixgbe_hw *hw, bool ena_lse, li->link_speed = IXGBE_LE16_TO_CPU(link_data.link_speed); li->phy_type_low = IXGBE_LE64_TO_CPU(link_data.phy_type_low); li->phy_type_high = IXGBE_LE64_TO_CPU(link_data.phy_type_high); - *hw_media_type = ixgbe_get_media_type_from_phy_type(hw); li->link_info = link_data.link_info; li->link_cfg_err = link_data.link_cfg_err; li->an_info = link_data.an_info; @@ -3664,10 +3661,11 @@ enum ixgbe_media_type ixgbe_get_media_type_E610(struct ixgbe_hw *hw) } } - /* Based on search above try to discover media type */ - hw->phy.media_type = ixgbe_get_media_type_from_phy_type(hw); } + /* Based on link status or search above try to discover media type */ + hw->phy.media_type = ixgbe_get_media_type_from_phy_type(hw); + return hw->phy.media_type; } -- 2.43.5