Patch "Octeontx2-pf: Free send queue buffers incase of leaf to inner" has been added to the 6.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    Octeontx2-pf: Free send queue buffers incase of leaf to inner

to the 6.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     octeontx2-pf-free-send-queue-buffers-incase-of-leaf-.patch
and it can be found in the queue-6.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 2833314e3636eaedf95eedb42839ae705652e6f2
Author: Hariprasad Kelam <hkelam@xxxxxxxxxxx>
Date:   Thu May 23 13:06:26 2024 +0530

    Octeontx2-pf: Free send queue buffers incase of leaf to inner
    
    [ Upstream commit 1684842147677a1279bcff95f8adb6de9a656e30 ]
    
    There are two type of classes. "Leaf classes" that are  the
    bottom of the class hierarchy. "Inner classes" that are neither
    the root class nor leaf classes. QoS rules can only specify leaf
    classes as targets for traffic.
    
                             Root
                            /  \
                           /    \
                          1      2
                                 /\
                                /  \
                               4    5
                   classes 1,4 and 5 are leaf classes.
                   class 2 is a inner class.
    
    When a leaf class made as inner, or vice versa, resources associated
    with send queue (send queue buffers and transmit schedulers) are not
    getting freed.
    
    Fixes: 5e6808b4c68d ("octeontx2-pf: Add support for HTB offload")
    Signed-off-by: Hariprasad Kelam <hkelam@xxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20240523073626.4114-1-hkelam@xxxxxxxxxxx
    Signed-off-by: Paolo Abeni <pabeni@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/qos.c b/drivers/net/ethernet/marvell/octeontx2/nic/qos.c
index 1723e9912ae07..6cddb4da85b71 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/qos.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/qos.c
@@ -1407,7 +1407,10 @@ static int otx2_qos_leaf_to_inner(struct otx2_nic *pfvf, u16 classid,
 	otx2_qos_read_txschq_cfg(pfvf, node, old_cfg);
 
 	/* delete the txschq nodes allocated for this node */
+	otx2_qos_disable_sq(pfvf, qid);
+	otx2_qos_free_hw_node_schq(pfvf, node);
 	otx2_qos_free_sw_node_schq(pfvf, node);
+	pfvf->qos.qid_to_sqmap[qid] = OTX2_QOS_INVALID_SQ;
 
 	/* mark this node as htb inner node */
 	WRITE_ONCE(node->qid, OTX2_QOS_QID_INNER);
@@ -1554,6 +1557,7 @@ static int otx2_qos_leaf_del_last(struct otx2_nic *pfvf, u16 classid, bool force
 		dwrr_del_node = true;
 
 	/* destroy the leaf node */
+	otx2_qos_disable_sq(pfvf, qid);
 	otx2_qos_destroy_node(pfvf, node);
 	pfvf->qos.qid_to_sqmap[qid] = OTX2_QOS_INVALID_SQ;
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux