net/iavf: fix queue pairs configuration
authorAlvin Zhang <alvinx.zhang@intel.com>
Wed, 23 Dec 2020 05:29:36 +0000 (13:29 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 8 Jan 2021 15:03:06 +0000 (16:03 +0100)
Check if there are enough queue pairs currently allocated, and if not,
request PF to allocate them.

Fixes: e436cd43835b ("net/iavf: negotiate large VF and request more queues")
Cc: stable@dpdk.org
Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
Tested-by: Zhimin Huang <zhiminx.huang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/iavf/iavf_ethdev.c

index d2fa168..7bf31d4 100644 (file)
@@ -375,8 +375,10 @@ iavf_dev_configure(struct rte_eth_dev *dev)
        } else {
                /* Check if large VF is already enabled. If so, disable and
                 * release redundant queue resource.
+                * Or check if enough queue pairs. If not, request them from PF.
                 */
-               if (vf->lv_enabled) {
+               if (vf->lv_enabled ||
+                   num_queue_pairs > vf->vsi_res->num_queue_pairs) {
                        ret = iavf_queues_req_reset(dev, num_queue_pairs);
                        if (ret)
                                return ret;