• Brett Creeley's avatar
    iavf: fix speed reporting over virtchnl · e0ef26fb
    Brett Creeley authored
    Link speeds are communicated over virtchnl using an enum
    virtchnl_link_speed. Currently, the highest link speed is 40Gbps which
    leaves us unable to reflect some speeds that an ice VF is capable of.
    This causes link speed to be misreported on the iavf driver.
    
    Allow for communicating link speeds using Mbps so that the proper speed can
    be reported for an ice VF. Moving away from the enum allows us to
    communicate future speed changes without requiring a new enum to be added.
    
    In order to support communicating link speeds over virtchnl in Mbps the
    following functionality was added:
        - Added u32 link_speed_mbps in the iavf_adapter structure.
        - Added the macro ADV_LINK_SUPPORT(_a) to determine if the VF
          driver supports communicating link speeds in Mbps.
        - Added the function iavf_get_vpe_link_status() to fill the
          correct link_status in the event_data union based on the
          ADV_LINK_SUPPORT(_a) macro.
        - Added the function iavf_set_adapter_link_speed_from_vpe()
          to determine whether or not to fill the u32 link_speed_mbps or
          enum virtchnl_link_speed link_speed field in the iavf_adapter
          structure based on the ADV_LINK_SUPPORT(_a) macro.
        - Do not free vf_res in iavf_init_get_resources() as vf_res will be
          accessed in iavf_get_link_ksettings(); memset to 0 instead. This
          memory is subsequently freed in iavf_remove().
    
    Fixes: 7c710869 ("ice: Add handlers for VF netdevice operations")
    Signed-off-by: default avatarBrett Creeley <brett.creeley@intel.com>
    Signed-off-by: default avatarSergey Nemov <sergey.nemov@intel.com>
    Signed-off-by: default avatarPaul Greenwalt <paul.greenwalt@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    e0ef26fb
iavf.h 14.8 KB