> In airoha_tc_remove_htb_queue(), the rate-limit was being cleared > using (queue + 1) instead of queue, causing: > - The original channel rate-limit configuration to remain active > - The next channel to be incorrectly disabled > - Potential out-of-bounds access when queue == 3 (channel 4) > > The alloc path (airoha_tc_htb_alloc_leaf_queue) correctly uses > channel (0..3), but the remove path incorrectly added 1. > > Fix by using queue directly to match the alloc and rollback paths. > > Fixes: ef1ca9271313 ("net: airoha: Add sched HTB offload support") > Signed-off-by: Wayen Yan > --- > drivers/net/ethernet/airoha/airoha_eth.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/airoha/airoha_eth.c b/drivers/net/ethernet/airoha/airoha_eth.c > index 31cdb11cd7..02807b3967 100644 > --- a/drivers/net/ethernet/airoha/airoha_eth.c > +++ b/drivers/net/ethernet/airoha/airoha_eth.c > @@ -2805,7 +2805,7 @@ static void airoha_tc_remove_htb_queue(struct net_device *dev, int queue) > struct airoha_gdm_port *port = netdev_priv(dev); > > netif_set_real_num_tx_queues(dev, dev->real_num_tx_queues - 1); > - airoha_qdma_set_tx_rate_limit(dev, queue + 1, 0, 0); > + airoha_qdma_set_tx_rate_limit(dev, queue, 0, 0); > clear_bit(queue, port->qos_sq_bmap); > } Please hold on with this patch, I am aware of the bug and the fix is already in my queue [0]. I am just waiting the net-next to be merged into net in order to avoid merge conflicts. Regards, Lorenzo [0] https://github.com/LorenzoBianconi/net-next/commits/airoha-qos-fixes-for-net/ > > -- > 2.51.0 > >