]> www.infradead.org Git - nvme.git/commitdiff
octeontx2-pf: qos: fix VF root node parent queue index
authorHariprasad Kelam <hkelam@marvell.com>
Mon, 7 Apr 2025 07:03:41 +0000 (12:33 +0530)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 8 Apr 2025 10:32:55 +0000 (12:32 +0200)
The current code configures the Physical Function (PF) root node at TL1
and the Virtual Function (VF) root node at TL2.

This ensure at any given point of time PF traffic gets more priority.

                    PF root node
                      TL1
                     /  \
                    TL2  TL2 VF root node
                    /     \
                   TL3    TL3
                   /       \
                  TL4      TL4
                  /         \
                 SMQ        SMQ

Due to a bug in the current code, the TL2 parent queue index on the
VF interface is not being configured, leading to 'SMQ Flush' errors

Fixes: 5e6808b4c68d ("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/20250407070341.2765426-1-hkelam@marvell.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/marvell/octeontx2/nic/qos.c

index 0f844c14485a0e35fe15ac3dd3b9100830bad146..35acc07bd964890f59004883f887efac1abce7c2 100644 (file)
@@ -165,6 +165,11 @@ static void __otx2_qos_txschq_cfg(struct otx2_nic *pfvf,
 
                otx2_config_sched_shaping(pfvf, node, cfg, &num_regs);
        } else if (level == NIX_TXSCH_LVL_TL2) {
+               /* configure parent txschq */
+               cfg->reg[num_regs] = NIX_AF_TL2X_PARENT(node->schq);
+               cfg->regval[num_regs] = (u64)hw->tx_link << 16;
+               num_regs++;
+
                /* configure link cfg */
                if (level == pfvf->qos.link_cfg_lvl) {
                        cfg->reg[num_regs] = NIX_AF_TL3_TL2X_LINKX_CFG(node->schq, hw->tx_link);