ice: Update number of VF queue before setting VSI resources
authorAkeem G Abodunrin <akeem.g.abodunrin@intel.com>
Wed, 26 Jun 2019 09:20:21 +0000 (02:20 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 31 Jul 2019 20:40:42 +0000 (13:40 -0700)
In case there is a request from a VF to change its number of queues, and
the request was successful, we need to update number of queues
configured on the VF before updating corresponding VSI for that VF,
especially LAN Tx queue tree and TC update, otherwise, we would continued
to use old value of vf->num_vf_qs for allocated Tx/Rx queues...

Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@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_virtchnl_pf.c

index 5d24b539648fbce7f44746336364e7229d85175a..00aa6364124a53597d43d646329869ac5a9aa86e 100644 (file)
@@ -567,11 +567,6 @@ static int ice_alloc_vf_res(struct ice_vf *vf)
        int tx_rx_queue_left;
        int status;
 
-       /* setup VF VSI and necessary resources */
-       status = ice_alloc_vsi_res(vf);
-       if (status)
-               goto ice_alloc_vf_res_exit;
-
        /* Update number of VF queues, in case VF had requested for queue
         * changes
         */
@@ -581,6 +576,11 @@ static int ice_alloc_vf_res(struct ice_vf *vf)
            vf->num_req_qs != vf->num_vf_qs)
                vf->num_vf_qs = vf->num_req_qs;
 
+       /* setup VF VSI and necessary resources */
+       status = ice_alloc_vsi_res(vf);
+       if (status)
+               goto ice_alloc_vf_res_exit;
+
        if (vf->trusted)
                set_bit(ICE_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps);
        else