(struct i40e_virtchnl_promisc_info *)msg;
        struct i40e_pf *pf = vf->pf;
        struct i40e_hw *hw = &pf->hw;
+       struct i40e_vsi *vsi;
        bool allmulti = false;
-       bool promisc = false;
        i40e_status aq_ret;
 
        if (!test_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states) ||
                aq_ret = I40E_ERR_PARAM;
                goto error_param;
        }
-
-       if (info->flags & I40E_FLAG_VF_UNICAST_PROMISC)
-               promisc = true;
-       aq_ret = i40e_aq_set_vsi_unicast_promiscuous(hw, info->vsi_id,
-                                                    promisc, NULL);
-       if (aq_ret)
-               goto error_param;
-
+       vsi = pf->vsi[info->vsi_id];
        if (info->flags & I40E_FLAG_VF_MULTICAST_PROMISC)
                allmulti = true;
-       aq_ret = i40e_aq_set_vsi_multicast_promiscuous(hw, info->vsi_id,
+       aq_ret = i40e_aq_set_vsi_multicast_promiscuous(hw, vsi->seid,
                                                       allmulti, NULL);
 
 error_param: