if (status) {
                dev_err(ice_pf_to_dev(pf), "Failed to set LAN Tx queue context, error: %d\n",
                        status);
-               return -ENODEV;
+               return status;
        }
 
        /* Add Tx Queue TEID into the VSI Tx ring from the
        } else if (status) {
                dev_dbg(ice_pf_to_dev(vsi->back), "Failed to disable LAN Tx queues, error: %d\n",
                        status);
-               return -ENODEV;
+               return status;
        }
 
        return 0;
 
                dev_dbg(dev, "Failed to discover device capabilities, status %d aq_err %s\n",
                        err, ice_aq_str(hw->adminq.sq_last_status));
                NL_SET_ERR_MSG_MOD(extack, "Unable to discover device capabilities");
-               err = -EIO;
                goto out_free_ctx;
        }
 
                        status, hw->adminq.sq_last_status);
                NL_SET_ERR_MSG_MOD(extack, "Failed to acquire NVM semaphore");
                vfree(nvm_data);
-               return -EIO;
+               return status;
        }
 
        status = ice_read_flat_nvm(hw, 0, &nvm_size, nvm_data, false);
                NL_SET_ERR_MSG_MOD(extack, "Failed to read NVM contents");
                ice_release_nvm(hw);
                vfree(nvm_data);
-               return -EIO;
+               return status;
        }
 
        ice_release_nvm(hw);
                        status, hw->adminq.sq_last_status);
                NL_SET_ERR_MSG_MOD(extack, "Failed to read device capabilities");
                vfree(devcaps);
-               return -EIO;
+               return status;
        }
 
        *data = (u8 *)devcaps;
 
        if (ret) {
                dev_err(dev, "ice_acquire_nvm failed, err %d aq_err %s\n",
                        ret, ice_aq_str(hw->adminq.sq_last_status));
-               ret = -EIO;
                goto out;
        }
 
        if (ret) {
                dev_err(dev, "ice_read_flat_nvm failed, err %d aq_err %s\n",
                        ret, ice_aq_str(hw->adminq.sq_last_status));
-               ret = -EIO;
                goto release;
        }
 
 
        err = ice_aq_get_phy_caps(pi, false, ICE_AQC_REPORT_TOPO_CAP_MEDIA,
                                  caps, NULL);
-       if (err) {
-               err = -EAGAIN;
+       if (err)
                goto done;
-       }
 
        /* Set supported/configured FEC modes based on PHY capability */
        if (caps->caps & ICE_AQC_PHY_EN_AUTO_FEC)
 
        err = ice_aq_get_phy_caps(vsi->port_info, false,
                                  ICE_AQC_REPORT_ACTIVE_CFG, caps, NULL);
-       if (err) {
-               err = -EIO;
+       if (err)
                goto done;
-       }
 
        /* Set the advertised flow control based on the PHY capability */
        if ((caps->caps & ICE_AQC_PHY_EN_TX_LINK_PAUSE) &&
 
        err = ice_aq_get_phy_caps(vsi->port_info, false,
                                  ICE_AQC_REPORT_TOPO_CAP_MEDIA, caps, NULL);
-       if (err) {
-               err = -EIO;
+       if (err)
                goto done;
-       }
 
        /* Set supported FEC modes based on PHY capability */
        ethtool_link_ksettings_add_link_mode(ks, supported, FEC_NONE);
        else
                err = ice_aq_get_phy_caps(pi, false, ICE_AQC_REPORT_TOPO_CAP_MEDIA,
                                          phy_caps, NULL);
-       if (err) {
-               err = -EIO;
+       if (err)
                goto done;
-       }
 
        /* save autoneg out of ksettings */
        autoneg = copy_ks.base.autoneg;
        /* Call to get the current link speed */
        pi->phy.get_link_info = true;
        err = ice_get_link_status(pi, &linkup);
-       if (err) {
-               err = -EIO;
+       if (err)
                goto done;
-       }
 
        curr_link_speed = pi->phy.link_info.link_speed;
        adv_link_speed = ice_ksettings_find_adv_link_speed(ks);
        err = ice_aq_set_phy_cfg(&pf->hw, pi, &config, NULL);
        if (err) {
                netdev_info(netdev, "Set phy config failed,\n");
-               err = -EIO;
                goto done;
        }
 
        if (status) {
                dev_dbg(dev, "ice_add_rss_cfg failed, vsi num = %d, error = %d\n",
                        vsi->vsi_num, status);
-               return -EINVAL;
+               return status;
        }
 
        return 0;
                                  NULL);
        if (err) {
                kfree(pcaps);
-               return -EIO;
+               return err;
        }
 
        is_an = ice_is_phy_caps_an_enabled(pcaps) ? AUTONEG_ENABLE :
        status = ice_aq_sff_eeprom(hw, 0, ICE_I2C_EEPROM_DEV_ADDR, 0x00, 0x00,
                                   0, &value, 1, 0, NULL);
        if (status)
-               return -EIO;
+               return status;
 
        switch (value) {
        case ICE_MODULE_TYPE_SFP:
                                           ICE_MODULE_SFF_8472_COMP, 0x00, 0,
                                           &sff8472_comp, 1, 0, NULL);
                if (status)
-                       return -EIO;
+                       return status;
                status = ice_aq_sff_eeprom(hw, 0, ICE_I2C_EEPROM_DEV_ADDR,
                                           ICE_MODULE_SFF_8472_SWAP, 0x00, 0,
                                           &sff8472_swap, 1, 0, NULL);
                if (status)
-                       return -EIO;
+                       return status;
 
                if (sff8472_swap & ICE_MODULE_SFF_ADDR_MODE) {
                        modinfo->type = ETH_MODULE_SFF_8079;
                                           ICE_MODULE_REVISION_ADDR, 0x00, 0,
                                           &sff8636_rev, 1, 0, NULL);
                if (status)
-                       return -EIO;
+                       return status;
                /* Check revision compliance */
                if (sff8636_rev > 0x02) {
                        /* Module is SFF-8636 compliant */
        status = ice_aq_sff_eeprom(hw, 0, addr, offset, page, 0, value, 1, 0,
                                   NULL);
        if (status)
-               return -EIO;
+               return status;
 
        if (value[0] == ICE_MODULE_TYPE_SFP)
                is_sfp = true;
 
                dev_err(dev, "Failed to acquire device flash lock, err %d aq_err %s\n",
                        err, ice_aq_str(hw->adminq.sq_last_status));
                NL_SET_ERR_MSG_MOD(extack, "Failed to acquire device flash lock");
-               return -EIO;
+               return err;
        }
 
        err = pldmfw_flash_image(&priv.context, fw);
        if (err) {
                NL_SET_ERR_MSG_MOD(extack, "Unable to read device capabilities");
                kfree(dev_caps);
-               return -EIO;
+               return err;
        }
 
        if (dev_caps->common_cap.nvm_update_pending_nvm) {
                dev_err(dev, "Failed to acquire device flash lock, err %d aq_err %s\n",
                        err, ice_aq_str(hw->adminq.sq_last_status));
                NL_SET_ERR_MSG_MOD(extack, "Failed to acquire device flash lock");
-               return -EIO;
+               return err;
        }
 
        pending |= ICE_AQC_NVM_REVERT_LAST_ACTIV;
 
        } else {
                dev_err(dev, "Error removing VLAN %d on vsi %i error: %d\n",
                        vid, vsi->vsi_num, err);
-               err = -EIO;
        }
 
        return err;
        if (ret) {
                dev_err(ice_pf_to_dev(vsi->back), "update VSI for VLAN insert failed, err %d aq_err %s\n",
                        ret, ice_aq_str(hw->adminq.sq_last_status));
-               ret = -EIO;
                goto out;
        }
 
        if (ret) {
                dev_err(ice_pf_to_dev(vsi->back), "update VSI for VLAN strip failed, ena = %d err %d aq_err %s\n",
                        ena, ret, ice_aq_str(hw->adminq.sq_last_status));
-               ret = -EIO;
                goto out;
        }
 
        ret = ice_update_vsi(&pf->hw, vsi->idx, ctx, NULL);
        if (ret) {
                dev_info(dev, "Failed VSI Update\n");
-               ret = -EIO;
                goto out;
        }
 
        if (ret) {
                dev_err(dev, "VSI %d failed TC config, error %d\n",
                        vsi->vsi_num, ret);
-               ret = -EIO;
                goto out;
        }
        ice_vsi_update_q_map(vsi, ctx);
        if (status) {
                dev_err(dev, "Failed to set VSI %d as the default forwarding VSI, error %d\n",
                        vsi->vsi_num, status);
-               return -EIO;
+               return status;
        }
 
        sw->dflt_vsi = vsi;
                        dev_err(dev, "failed to set min Tx rate(%llu Kbps) for %s %d\n",
                                min_tx_rate, ice_vsi_type_str(vsi->type),
                                vsi->idx);
-                       return -EIO;
+                       return status;
                }
 
                dev_dbg(dev, "set min Tx rate(%llu Kbps) for %s\n",
                if (status) {
                        dev_err(dev, "failed to clear min Tx rate configuration for %s %d\n",
                                ice_vsi_type_str(vsi->type), vsi->idx);
-                       return -EIO;
+                       return status;
                }
 
                dev_dbg(dev, "cleared min Tx rate configuration for %s %d\n",
                        dev_err(dev, "failed setting max Tx rate(%llu Kbps) for %s %d\n",
                                max_tx_rate, ice_vsi_type_str(vsi->type),
                                vsi->idx);
-                       return -EIO;
+                       return status;
                }
 
                dev_dbg(dev, "set max Tx rate(%llu Kbps) for %s %d\n",
                if (status) {
                        dev_err(dev, "failed clearing max Tx rate configuration for %s %d\n",
                                ice_vsi_type_str(vsi->type), vsi->idx);
-                       return -EIO;
+                       return status;
                }
 
                dev_dbg(dev, "cleared max Tx rate configuration for %s %d\n",
                dev_err(dev, "can't set link to %s, err %d aq_err %s\n",
                        (ena ? "ON" : "OFF"), status,
                        ice_aq_str(hw->adminq.sq_last_status));
-               return -EIO;
+               return status;
        }
 
        return 0;
 
 {
        struct ice_vsi *vsi;
        u8 *perm_addr;
-       int status;
 
        vsi = ice_get_main_vsi(pf);
        if (!vsi)
                return -EINVAL;
 
        perm_addr = vsi->port_info->mac.perm_addr;
-       status = ice_fltr_add_mac_and_broadcast(vsi, perm_addr, ICE_FWD_TO_VSI);
-       if (status)
-               return -EIO;
-
-       return 0;
+       return ice_fltr_add_mac_and_broadcast(vsi, perm_addr, ICE_FWD_TO_VSI);
 }
 
 /**
                status = ice_fltr_set_vlan_vsi_promisc(&vsi->back->hw, vsi, promisc_m);
        else
                status = ice_fltr_set_vsi_promisc(&vsi->back->hw, vsi->idx, promisc_m, 0);
-       if (status)
-               return -EIO;
-
-       return 0;
+       return status;
 }
 
 /**
                status = ice_fltr_clear_vlan_vsi_promisc(&vsi->back->hw, vsi, promisc_m);
        else
                status = ice_fltr_clear_vsi_promisc(&vsi->back->hw, vsi->idx, promisc_m, 0);
-       if (status)
-               return -EIO;
-
-       return 0;
+       return status;
 }
 
 /**
                        netdev_warn(netdev, "Reached MAC filter limit, forcing promisc mode on VSI %d\n",
                                    vsi->vsi_num);
                } else {
-                       err = -EIO;
                        goto out;
                }
        }
 
        if (err) {
                dev_err(ice_pf_to_dev(pf), "Get PHY capability failed.\n");
-               err = -EIO;
                goto out;
        }
 
                                          pcaps, NULL);
        if (err) {
                dev_err(ice_pf_to_dev(pf), "Get PHY capability failed.\n");
-               err = -EIO;
                goto err_out;
        }
 
        if (err) {
                dev_err(dev, "Failed to get PHY configuration, VSI %d error %d\n",
                        vsi->vsi_num, err);
-               err = -EIO;
                goto done;
        }
 
        if (err) {
                dev_err(dev, "Failed to get PHY caps, VSI %d error %d\n",
                        vsi->vsi_num, err);
-               err = -EIO;
                goto done;
        }
 
        cfg->caps |= ICE_AQ_PHY_ENA_AUTO_LINK_UPDT | ICE_AQ_PHY_ENA_LINK;
 
        err = ice_aq_set_phy_cfg(&pf->hw, pi, cfg, NULL);
-       if (err) {
+       if (err)
                dev_err(dev, "Failed to set phy config, VSI %d error %d\n",
                        vsi->vsi_num, err);
-               err = -EIO;
-       }
 
        kfree(cfg);
 done:
        INIT_LIST_HEAD(&vsi->ch_list);
 
        status = ice_cfg_netdev(vsi);
-       if (status) {
-               status = -ENODEV;
+       if (status)
                goto unroll_vsi_setup;
-       }
        /* netdev has to be configured before setting frame size */
        ice_vsi_cfg_frame_size(vsi);
 
        if (status) {
                dev_err(dev, "Failed to set CPU Rx map VSI %d error %d\n",
                        vsi->vsi_num, status);
-               status = -EINVAL;
                goto unroll_napi_add;
        }
        status = ice_init_mac_fltr(pf);
        else
                status = ice_cfg_q_bw_lmt(vsi->port_info, vsi->idx, tc,
                                          q_handle, ICE_MAX_BW, maxrate * 1000);
-       if (status) {
+       if (status)
                netdev_err(netdev, "Unable to set Tx max rate, error %d\n",
                           status);
-               return -EIO;
-       }
 
-       return 0;
+       return status;
 }
 
 /**
                if (err) {
                        dev_err(dev, "replay VSI failed, error %d, VSI index %d, type %s\n",
                                err, vsi->idx, ice_vsi_type_str(type));
-                       return -EIO;
+                       return err;
                }
 
                /* Re-map HW VSI number, using VSI handle that has been
        params.lut = lut;
 
        status = ice_aq_set_rss_lut(hw, ¶ms);
-       if (status) {
+       if (status)
                dev_err(ice_pf_to_dev(vsi->back), "Cannot set RSS lut, err %d aq_err %s\n",
                        status, ice_aq_str(hw->adminq.sq_last_status));
-               return -EIO;
-       }
 
-       return 0;
+       return status;
 }
 
 /**
                return -EINVAL;
 
        status = ice_aq_set_rss_key(hw, vsi->idx, (struct ice_aqc_get_set_rss_keys *)seed);
-       if (status) {
+       if (status)
                dev_err(ice_pf_to_dev(vsi->back), "Cannot set RSS key, err %d aq_err %s\n",
                        status, ice_aq_str(hw->adminq.sq_last_status));
-               return -EIO;
-       }
 
-       return 0;
+       return status;
 }
 
 /**
        params.lut = lut;
 
        status = ice_aq_get_rss_lut(hw, ¶ms);
-       if (status) {
+       if (status)
                dev_err(ice_pf_to_dev(vsi->back), "Cannot get RSS lut, err %d aq_err %s\n",
                        status, ice_aq_str(hw->adminq.sq_last_status));
-               return -EIO;
-       }
 
-       return 0;
+       return status;
 }
 
 /**
                return -EINVAL;
 
        status = ice_aq_get_rss_key(hw, vsi->idx, (struct ice_aqc_get_set_rss_keys *)seed);
-       if (status) {
+       if (status)
                dev_err(ice_pf_to_dev(vsi->back), "Cannot get RSS key, err %d aq_err %s\n",
                        status, ice_aq_str(hw->adminq.sq_last_status));
-               return -EIO;
-       }
 
-       return 0;
+       return status;
 }
 
 /**
        if (ret) {
                dev_err(ice_pf_to_dev(vsi->back), "update VSI for bridge mode failed, bmode = %d err %d aq_err %s\n",
                        bmode, ret, ice_aq_str(hw->adminq.sq_last_status));
-               ret = -EIO;
                goto out;
        }
        /* Update sw flags for book keeping */
                                   ice_aq_str(hw->adminq.sq_last_status));
                        /* revert hw->evb_veb */
                        hw->evb_veb = (pf_sw->bridge_mode == BRIDGE_MODE_VEB);
-                       return -EIO;
+                       return err;
                }
 
                pf_sw->bridge_mode = mode;
        err = ice_update_link_info(pi);
        if (err) {
                netdev_err(netdev, "Failed to get link info, error %d\n", err);
-               return -EIO;
+               return err;
        }
 
        ice_check_link_cfg_err(pf, pi->phy.link_info.link_cfg_err);
 
                goto exit;
        } else if (ret) {
                NL_SET_ERR_MSG_MOD(fltr->extack, "Unable to add filter due to error");
-               ret = -EIO;
                goto exit;
        }
 
 
        if (ret) {
                dev_info(ice_hw_to_dev(hw), "update VSI for port VLAN failed, err %d aq_err %s\n",
                         ret, ice_aq_str(hw->adminq.sq_last_status));
-               ret = -EIO;
                goto out;
        }
 
        if (ret) {
                dev_err(dev, "Failed to %sable spoofchk on VF %d VSI %d\n error %d\n",
                        ena ? "en" : "dis", vf->vf_id, vf_vsi->vsi_num, ret);
-               ret = -EIO;
                goto out;
        }
 
        } else if (ret) {
                dev_err(dev, "Failed to add MAC %pM for VF %d\n, error %d\n",
                        mac_addr, vf->vf_id, ret);
-               return -EIO;
+               return ret;
        } else {
                vf->num_mac++;
        }