octeontx2-pf: QOS: Refactor TC_HTB_LEAF_DEL_LAST callback
[ Upstream commit 67af4ec948e8ce3ea53a9cf614d01fddf172e56d ]
This patch addresses below issues,
1. Active traffic on the leaf node must be stopped before its send queue
is reassigned to the parent. This patch resolves the issue by marking
the node as 'Inner'.
2. During a system reboot, the interface receives TC_HTB_LEAF_DEL
and TC_HTB_LEAF_DEL_LAST callbacks to delete its HTB queues.
In the case of TC_HTB_LEAF_DEL_LAST, although the same send queue
is reassigned to the parent, the current logic still attempts to update
the real number of queues, leadning to below warnings
New queues can't be registered after device unregistration.
WARNING: CPU: 0 PID: 6475 at net/core/net-sysfs.c:1714
netdev_queue_update_kobjects+0x1e4/0x200
Fixes: 5e6808b4c6
("octeontx2-pf: Add support for HTB offload")
Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250522115842.1499666-1-hkelam@marvell.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
0b40aeaf83
commit
5df8db01d6
@@ -1560,6 +1560,7 @@ static int otx2_qos_leaf_del_last(struct otx2_nic *pfvf, u16 classid, bool force
|
|||||||
if (!node->is_static)
|
if (!node->is_static)
|
||||||
dwrr_del_node = true;
|
dwrr_del_node = true;
|
||||||
|
|
||||||
|
WRITE_ONCE(node->qid, OTX2_QOS_QID_INNER);
|
||||||
/* destroy the leaf node */
|
/* destroy the leaf node */
|
||||||
otx2_qos_disable_sq(pfvf, qid);
|
otx2_qos_disable_sq(pfvf, qid);
|
||||||
otx2_qos_destroy_node(pfvf, node);
|
otx2_qos_destroy_node(pfvf, node);
|
||||||
@@ -1604,9 +1605,6 @@ static int otx2_qos_leaf_del_last(struct otx2_nic *pfvf, u16 classid, bool force
|
|||||||
}
|
}
|
||||||
kfree(new_cfg);
|
kfree(new_cfg);
|
||||||
|
|
||||||
/* update tx_real_queues */
|
|
||||||
otx2_qos_update_tx_netdev_queues(pfvf);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user