|
@@ -1512,7 +1512,12 @@ static void i40e_vsi_setup_queue_map(struct i40e_vsi *vsi,
|
|
|
vsi->tc_config.numtc = numtc;
|
|
|
vsi->tc_config.enabled_tc = enabled_tc ? enabled_tc : 1;
|
|
|
/* Number of queues per enabled TC */
|
|
|
- num_tc_qps = vsi->alloc_queue_pairs/numtc;
|
|
|
+ /* In MFP case we can have a much lower count of MSIx
|
|
|
+ * vectors available and so we need to lower the used
|
|
|
+ * q count.
|
|
|
+ */
|
|
|
+ qcount = min_t(int, vsi->alloc_queue_pairs, pf->num_lan_msix);
|
|
|
+ num_tc_qps = qcount / numtc;
|
|
|
num_tc_qps = min_t(int, num_tc_qps, I40E_MAX_QUEUES_PER_TC);
|
|
|
|
|
|
/* Setup queue offset/count for all TCs for given VSI */
|