net/i40e: fix queue number error in queue region

when VSI is enabled with smaller number of queues, for example 1 or 6,
it will cause error.

64 is the max number of queues that can be used for RSS, but VSI might
be created with only few queues.

Fixes: 7cbecc2f74 ("net/i40e: support queue region set and flush")

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
Wei Zhao 2017-10-24 16:45:10 +08:00 committed by Ferruh Yigit
parent 79e4ee5668
commit 70697032d5

View File

@ -2825,6 +2825,7 @@ i40e_flush_queue_region_all_conf(struct rte_eth_dev *dev,
{ {
int32_t ret = -EINVAL; int32_t ret = -EINVAL;
struct i40e_queue_regions *info = &pf->queue_region; struct i40e_queue_regions *info = &pf->queue_region;
struct i40e_vsi *main_vsi = pf->main_vsi;
if (on) { if (on) {
i40e_queue_region_pf_flowtype_conf(hw, pf); i40e_queue_region_pf_flowtype_conf(hw, pf);
@ -2845,7 +2846,7 @@ i40e_flush_queue_region_all_conf(struct rte_eth_dev *dev,
} }
info->queue_region_number = 1; info->queue_region_number = 1;
info->region[0].queue_num = 64; info->region[0].queue_num = main_vsi->nb_used_qps;
info->region[0].queue_start_index = 0; info->region[0].queue_start_index = 0;
ret = i40e_vsi_update_queue_region_mapping(hw, pf); ret = i40e_vsi_update_queue_region_mapping(hw, pf);