X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fiavf%2Fiavf_fdir.c;h=d683a468c11c0df2479404188b797a989d2d5207;hb=a2999c7bfe395708a6a68ebb6f3199af7d25cffe;hp=f584e5624cc4804d7d4a41c99efb27dc21e22ded;hpb=4c7a41ae6b236af3198a13e3ccd6df9fd5a192b8;p=dpdk.git diff --git a/drivers/net/iavf/iavf_fdir.c b/drivers/net/iavf/iavf_fdir.c index f584e5624c..d683a468c1 100644 --- a/drivers/net/iavf/iavf_fdir.c +++ b/drivers/net/iavf/iavf_fdir.c @@ -256,6 +256,7 @@ iavf_fdir_parse_action_qregion(struct iavf_adapter *ad, const struct rte_flow_action *act, struct virtchnl_filter_action *filter_action) { + struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(ad); const struct rte_flow_action_rss *rss = act->conf; uint32_t i; @@ -300,6 +301,13 @@ iavf_fdir_parse_action_qregion(struct iavf_adapter *ad, return -rte_errno; } + if (rss->queue_num > vf->max_rss_qregion) { + rte_flow_error_set(error, EINVAL, + RTE_FLOW_ERROR_TYPE_ACTION, act, + "The region size cannot be large than the supported max RSS queue region"); + return -rte_errno; + } + filter_action->act_conf.queue.index = rss->queue[0]; filter_action->act_conf.queue.region = rte_fls_u32(rss->queue_num) - 1;