net/i40e: fix flow RSS configuration error

I40e needs a protection for rss rule flow configuration
after a rule is set for a port.

Fixes: ecad87d223 ("net/i40e: move RSS to flow API")
Cc: stable@dpdk.org

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Tested-by: Yuan Peng <yuan.peng@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
This commit is contained in:
Wei Zhao 2018-03-26 09:11:39 +08:00 committed by Ferruh Yigit
parent 0264539dce
commit f324bcfbdb

View File

@ -4385,14 +4385,15 @@ i40e_config_rss_filter_set(struct rte_eth_dev *dev,
{
struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
int ret;
if (conf->queue_region_conf) {
i40e_flush_queue_region_all_conf(dev, hw, pf, 1);
ret = i40e_flush_queue_region_all_conf(dev, hw, pf, 1);
conf->queue_region_conf = 0;
} else {
i40e_config_rss_filter(pf, conf, 1);
ret = i40e_config_rss_filter(pf, conf, 1);
}
return 0;
return ret;
}
static int
@ -4545,6 +4546,8 @@ i40e_flow_create(struct rte_eth_dev *dev,
case RTE_ETH_FILTER_HASH:
ret = i40e_config_rss_filter_set(dev,
&cons_filter.rss_conf);
if (ret)
goto free_flow;
flow->rule = &pf->rss_info;
break;
default: