Implement mechanism to change number of queues for SWITCHDEV_CTRL VSI
type.

Value from ::req_txq/rxq will be written to ::alloc_txq/rxq after
calling ice_vsi_rebuild().

Reviewed-by: Piotr Raczynski <[email protected]>
Reviewed-by: Wojciech Drewek <[email protected]>
Reviewed-by: Jacob Keller <[email protected]>
Signed-off-by: Michal Swiatkowski <[email protected]>
---
 drivers/net/ethernet/intel/ice/ice_lib.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c 
b/drivers/net/ethernet/intel/ice/ice_lib.c
index ae4b4220e1bb..85a8cb28a489 100644
--- a/drivers/net/ethernet/intel/ice/ice_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_lib.c
@@ -212,11 +212,18 @@ static void ice_vsi_set_num_qs(struct ice_vsi *vsi)
                                                 vsi->alloc_txq));
                break;
        case ICE_VSI_SWITCHDEV_CTRL:
-               /* The number of queues for ctrl VSI is equal to number of VFs.
+               /* The number of queues for ctrl VSI is equal to number of PRs
                 * Each ring is associated to the corresponding VF_PR netdev.
+                * Tx and Rx rings are always equal
                 */
-               vsi->alloc_txq = ice_get_num_vfs(pf);
-               vsi->alloc_rxq = vsi->alloc_txq;
+               if (vsi->req_txq && vsi->req_rxq) {
+                       vsi->alloc_txq = vsi->req_txq;
+                       vsi->alloc_rxq = vsi->req_rxq;
+               } else {
+                       vsi->alloc_txq = 1;
+                       vsi->alloc_rxq = 1;
+               }
+
                vsi->num_q_vectors = 1;
                break;
        case ICE_VSI_VF:
-- 
2.41.0

_______________________________________________
Intel-wired-lan mailing list
[email protected]
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan

Reply via email to