From: Peng Zhang <peng.zh...@corigine.com> When the number of VF representor ports is bigger than the number of VF ports, there will be segment fault.
Fix this by adding the check logic. Fixes: e1124c4f8a45 ("net/nfp: add flower representor framework") Cc: chaoyong...@corigine.com Cc: sta...@dpdk.org Signed-off-by: Peng Zhang <peng.zh...@corigine.com> Reviewed-by: Chaoyong He <chaoyong...@corigine.com> Reviewed-by: Long Wu <long...@corigine.com> --- drivers/net/nfp/flower/nfp_flower_representor.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c index e6fef45ddd..086dbc58e3 100644 --- a/drivers/net/nfp/flower/nfp_flower_representor.c +++ b/drivers/net/nfp/flower/nfp_flower_representor.c @@ -959,6 +959,11 @@ nfp_flower_repr_create(struct nfp_app_fw_flower *app_fw_flower, app_fw_flower->num_phyport_reprs = pf_dev->total_phyports; app_fw_flower->num_vf_reprs = eth_da.nb_representor_ports - pf_dev->total_phyports - 1; + if (pf_dev->max_vfs != 0 && pf_dev->sriov_vf < app_fw_flower->num_vf_reprs) { + PMD_INIT_LOG(ERR, "The VF repr nums %d is bigger than VF nums %d", + app_fw_flower->num_vf_reprs, pf_dev->sriov_vf); + return -ERANGE; + } PMD_INIT_LOG(INFO, "%d number of VF reprs", app_fw_flower->num_vf_reprs); PMD_INIT_LOG(INFO, "%d number of phyport reprs", app_fw_flower->num_phyport_reprs); -- 2.39.1