Before this patch, VF must request a specific queues(1/2/4/8/16) with
DPDK PF. This patch align the number of requested queues to next power
of 2. So VF can request any number queues from 1 to 16.

Signed-off-by: Zhirun Yan <zhirun....@intel.com>
---
 drivers/net/i40e/i40e_pf.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/i40e/i40e_pf.c b/drivers/net/i40e/i40e_pf.c
index 092e0d3e9..d110dffb7 100644
--- a/drivers/net/i40e/i40e_pf.c
+++ b/drivers/net/i40e/i40e_pf.c
@@ -1271,7 +1271,10 @@ i40e_pf_host_process_cmd_request_queues(struct 
i40e_pf_vf *vf, uint8_t *msg)
        } else {
                i40e_vc_notify_vf_reset(vf);
                vf->vsi->nb_qps = req_pairs;
-               pf->vf_nb_qps = req_pairs;
+               if (rte_is_power_of_2(req_pairs))
+                       pf->vf_nb_qps = req_pairs;
+               else
+                       pf->vf_nb_qps = i40e_align_floor(req_pairs) << 1;
                i40e_pf_host_process_cmd_reset_vf(vf);
 
                return 0;
-- 
2.17.1

Reply via email to