vfres->vf_cap_flags = VIRTCHNL_VF_OFFLOAD_L2;
        vsi = pf->vsi[vf->lan_vsi_idx];
+       if (!vsi) {
+               aq_ret = ICE_ERR_PARAM;
+               goto err;
+       }
+
        if (!vsi->info.pvid)
                vfres->vf_cap_flags |= VIRTCHNL_VF_OFFLOAD_VLAN;
 
        struct virtchnl_rss_key *vrk =
                (struct virtchnl_rss_key *)msg;
        struct ice_vsi *vsi = NULL;
+       struct ice_pf *pf = vf->pf;
        enum ice_status aq_ret;
        int ret;
 
                goto error_param;
        }
 
-       vsi = ice_find_vsi_from_id(vf->pf, vrk->vsi_id);
+       vsi = pf->vsi[vf->lan_vsi_idx];
        if (!vsi) {
                aq_ret = ICE_ERR_PARAM;
                goto error_param;
 {
        struct virtchnl_rss_lut *vrl = (struct virtchnl_rss_lut *)msg;
        struct ice_vsi *vsi = NULL;
+       struct ice_pf *pf = vf->pf;
        enum ice_status aq_ret;
        int ret;
 
                goto error_param;
        }
 
-       vsi = ice_find_vsi_from_id(vf->pf, vrl->vsi_id);
+       vsi = pf->vsi[vf->lan_vsi_idx];
        if (!vsi) {
                aq_ret = ICE_ERR_PARAM;
                goto error_param;
        struct virtchnl_queue_select *vqs =
                (struct virtchnl_queue_select *)msg;
        enum ice_status aq_ret = 0;
+       struct ice_pf *pf = vf->pf;
        struct ice_eth_stats stats;
        struct ice_vsi *vsi;
 
                goto error_param;
        }
 
-       vsi = ice_find_vsi_from_id(vf->pf, vqs->vsi_id);
+       vsi = pf->vsi[vf->lan_vsi_idx];
        if (!vsi) {
                aq_ret = ICE_ERR_PARAM;
                goto error_param;
        struct virtchnl_queue_select *vqs =
            (struct virtchnl_queue_select *)msg;
        enum ice_status aq_ret = 0;
+       struct ice_pf *pf = vf->pf;
        struct ice_vsi *vsi;
 
        if (!test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states)) {
                goto error_param;
        }
 
-       vsi = ice_find_vsi_from_id(vf->pf, vqs->vsi_id);
+       vsi = pf->vsi[vf->lan_vsi_idx];
        if (!vsi) {
                aq_ret = ICE_ERR_PARAM;
                goto error_param;
        struct virtchnl_queue_select *vqs =
            (struct virtchnl_queue_select *)msg;
        enum ice_status aq_ret = 0;
+       struct ice_pf *pf = vf->pf;
        struct ice_vsi *vsi;
 
        if (!test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states) &&
                goto error_param;
        }
 
-       vsi = ice_find_vsi_from_id(vf->pf, vqs->vsi_id);
+       vsi = pf->vsi[vf->lan_vsi_idx];
        if (!vsi) {
                aq_ret = ICE_ERR_PARAM;
                goto error_param;
                        goto error_param;
                }
 
-               vsi = ice_find_vsi_from_id(vf->pf, vsi_id);
+               vsi = pf->vsi[vf->lan_vsi_idx];
                if (!vsi) {
                        aq_ret = ICE_ERR_PARAM;
                        goto error_param;
                goto error_param;
        }
 
-       vsi = ice_find_vsi_from_id(vf->pf, qci->vsi_id);
+       vsi = pf->vsi[vf->lan_vsi_idx];
        if (!vsi) {
                aq_ret = ICE_ERR_PARAM;
                goto error_param;
        }
 
        vsi = pf->vsi[vf->lan_vsi_idx];
+       if (!vsi) {
+               ret = ICE_ERR_PARAM;
+               goto handle_mac_exit;
+       }
 
        for (i = 0; i < al->num_elements; i++) {
                u8 *maddr = al->list[i].addr;
        }
 
        hw = &pf->hw;
-       vsi = ice_find_vsi_from_id(vf->pf, vfl->vsi_id);
+       vsi = pf->vsi[vf->lan_vsi_idx];
        if (!vsi) {
                aq_ret = ICE_ERR_PARAM;
                goto error_param;
        }
 
        vsi = pf->vsi[vf->lan_vsi_idx];
+       if (!vsi) {
+               aq_ret = ICE_ERR_PARAM;
+               goto error_param;
+       }
+
        if (ice_vsi_manage_vlan_stripping(vsi, false))
                aq_ret = ICE_ERR_AQ_ERROR;