• Corinna Vinschen's avatar
    igc: fix link speed advertising · 329a3678
    Corinna Vinschen authored
    Link speed advertising in igc has two problems:
    
    - When setting the advertisement via ethtool, the link speed is converted
      to the legacy 32 bit representation for the intel PHY code.
      This inadvertently drops ETHTOOL_LINK_MODE_2500baseT_Full_BIT (being
      beyond bit 31).  As a result, any call to `ethtool -s ...' drops the
      2500Mbit/s link speed from the PHY settings.  Only reloading the driver
      alleviates that problem.
    
      Fix this by converting the ETHTOOL_LINK_MODE_2500baseT_Full_BIT to the
      Intel PHY ADVERTISE_2500_FULL bit explicitly.
    
    - Rather than checking the actual PHY setting, the .get_link_ksettings
      function always fills link_modes.advertising with all link speeds
      the device is capable of.
    
      Fix this by checking the PHY autoneg_advertised settings and report
      only the actually advertised speeds up to ethtool.
    
    Fixes: 8c5ad0da ("igc: Add ethtool support")
    Signed-off-by: default avatarCorinna Vinschen <vinschen@redhat.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    329a3678
igc_ethtool.c 52.6 KB