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 5d24b53..00aa636 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