The ice_sched_node type has got a field for the vsi to which the node
belongs. This field was not getting set in "ice_sched_add_node", so add
a line configuring this field for each node from its parent node.
Similarly, when searching for a qgroup node, we can check for each node
that the VSI information is correct.

Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>
---
 drivers/net/ice/base/ice_sched.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ice/base/ice_sched.c b/drivers/net/ice/base/ice_sched.c
index f75e5ae599..f6dc5ae173 100644
--- a/drivers/net/ice/base/ice_sched.c
+++ b/drivers/net/ice/base/ice_sched.c
@@ -200,6 +200,7 @@ ice_sched_add_node(struct ice_port_info *pi, u8 layer,
        node->in_use = true;
        node->parent = parent;
        node->tx_sched_layer = layer;
+       node->vsi_handle = parent->vsi_handle;
        parent->children[parent->num_children++] = node;
        node->info = elem;
        return 0;
@@ -1581,7 +1582,7 @@ ice_sched_get_free_qparent(struct ice_port_info *pi, u16 
vsi_handle, u8 tc,
                /* make sure the qgroup node is part of the VSI subtree */
                if (ice_sched_find_node_in_subtree(pi->hw, vsi_node, qgrp_node))
                        if (qgrp_node->num_children < max_children &&
-                           qgrp_node->owner == owner)
+                           qgrp_node->owner == owner && qgrp_node->vsi_handle 
== vsi_handle)
                                break;
                qgrp_node = qgrp_node->sibling;
        }
-- 
2.43.0

Reply via email to