ice: Adjust DCB INIT for SW mode
authorDave Ertman <david.m.ertman@intel.com>
Wed, 9 Oct 2019 14:09:45 +0000 (07:09 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 7 Nov 2019 00:41:45 +0000 (16:41 -0800)
Adjust ice_init_dcb to set the is_sw_lldp boolean
in the case where the FW has been detected to be
in an untenable state such that the driver
should forcibly make sure it is off.

This will ensure that the FW is in a known state.

Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ice/ice_dcb.c

index dd7efff121bd60b3e02499624bad34dc94246a88..713e8a892e149ec6578a889655ca71a61101fb3e 100644 (file)
@@ -965,9 +965,9 @@ enum ice_status ice_init_dcb(struct ice_hw *hw, bool enable_mib_change)
            pi->dcbx_status == ICE_DCBX_STATUS_NOT_STARTED) {
                /* Get current DCBX configuration */
                ret = ice_get_dcb_cfg(pi);
-               pi->is_sw_lldp = (hw->adminq.sq_last_status == ICE_AQ_RC_EPERM);
                if (ret)
                        return ret;
+               pi->is_sw_lldp = false;
        } else if (pi->dcbx_status == ICE_DCBX_STATUS_DIS) {
                return ICE_ERR_NOT_READY;
        }
@@ -975,8 +975,8 @@ enum ice_status ice_init_dcb(struct ice_hw *hw, bool enable_mib_change)
        /* Configure the LLDP MIB change event */
        if (enable_mib_change) {
                ret = ice_aq_cfg_lldp_mib_change(hw, true, NULL);
-               if (!ret)
-                       pi->is_sw_lldp = false;
+               if (ret)
+                       pi->is_sw_lldp = true;
        }
 
        return ret;