diff mbox series

[net] net: airoha: Fix qid report in airoha_tc_get_htb_get_leaf_queue()

Message ID 20250331-airoha-htb-qdisc-offload-del-fix-v1-1-4ea429c2c968@kernel.org (mailing list archive)
State New
Delegated to: Netdev Maintainers
Headers show
Series [net] net: airoha: Fix qid report in airoha_tc_get_htb_get_leaf_queue() | expand

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for net
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag present in non-next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 518 this patch: 518
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers warning 2 maintainers not CCed: angelogioacchino.delregno@collabora.com matthias.bgg@gmail.com
netdev/build_clang success Errors and warnings before: 966 this patch: 966
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 15128 this patch: 15128
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 8 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
netdev/contest success net-next-2025-04-01--00-00 (tests: 902)

Commit Message

Lorenzo Bianconi March 31, 2025, 6:52 a.m. UTC
Fix the following kernel warning deleting HTB offloaded leafs and/or root
HTB qdisc in airoha_eth driver properly reporting qid in
airoha_tc_get_htb_get_leaf_queue routine.

$tc qdisc replace dev eth1 root handle 10: htb offload
$tc class add dev eth1 arent 10: classid 10:4 htb rate 100mbit ceil 100mbit
$tc qdisc replace dev eth1 parent 10:4 handle 4: ets bands 8 \
 quanta 1514 3028 4542 6056 7570 9084 10598 12112
$tc qdisc del dev eth1 root

[   55.827864] ------------[ cut here ]------------
[   55.832493] WARNING: CPU: 3 PID: 2678 at 0xffffffc0798695a4
[   55.956510] CPU: 3 PID: 2678 Comm: tc Tainted: G           O 6.6.71 #0
[   55.963557] Hardware name: Airoha AN7581 Evaluation Board (DT)
[   55.969383] pstate: 20400005 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   55.976344] pc : 0xffffffc0798695a4
[   55.979851] lr : 0xffffffc079869a20
[   55.983358] sp : ffffffc0850536a0
[   55.986665] x29: ffffffc0850536a0 x28: 0000000000000024 x27: 0000000000000001
[   55.993800] x26: 0000000000000000 x25: ffffff8008b19000 x24: ffffff800222e800
[   56.000935] x23: 0000000000000001 x22: 0000000000000000 x21: ffffff8008b19000
[   56.008071] x20: ffffff8002225800 x19: ffffff800379d000 x18: 0000000000000000
[   56.015206] x17: ffffffbf9ea59000 x16: ffffffc080018000 x15: 0000000000000000
[   56.022342] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000001
[   56.029478] x11: ffffffc081471008 x10: ffffffc081575a98 x9 : 0000000000000000
[   56.036614] x8 : ffffffc08167fd40 x7 : ffffffc08069e104 x6 : ffffff8007f86000
[   56.043748] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000001
[   56.050884] x2 : 0000000000000000 x1 : 0000000000000250 x0 : ffffff800222c000
[   56.058020] Call trace:
[   56.060459]  0xffffffc0798695a4
[   56.063618]  0xffffffc079869a20
[   56.066777]  __qdisc_destroy+0x40/0xa0
[   56.070528]  qdisc_put+0x54/0x6c
[   56.073748]  qdisc_graft+0x41c/0x648
[   56.077324]  tc_get_qdisc+0x168/0x2f8
[   56.080978]  rtnetlink_rcv_msg+0x230/0x330
[   56.085076]  netlink_rcv_skb+0x5c/0x128
[   56.088913]  rtnetlink_rcv+0x14/0x1c
[   56.092490]  netlink_unicast+0x1e0/0x2c8
[   56.096413]  netlink_sendmsg+0x198/0x3c8
[   56.100337]  ____sys_sendmsg+0x1c4/0x274
[   56.104261]  ___sys_sendmsg+0x7c/0xc0
[   56.107924]  __sys_sendmsg+0x44/0x98
[   56.111492]  __arm64_sys_sendmsg+0x20/0x28
[   56.115580]  invoke_syscall.constprop.0+0x58/0xfc
[   56.120285]  do_el0_svc+0x3c/0xbc
[   56.123592]  el0_svc+0x18/0x4c
[   56.126647]  el0t_64_sync_handler+0x118/0x124
[   56.131005]  el0t_64_sync+0x150/0x154
[   56.134660] ---[ end trace 0000000000000000 ]---

Fixes: ef1ca9271313b ("net: airoha: Add sched HTB offload support")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
 drivers/net/ethernet/airoha/airoha_eth.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


---
base-commit: 2ea396448f26d0d7d66224cb56500a6789c7ed07
change-id: 20250331-airoha-htb-qdisc-offload-del-fix-77e48279b337

Best regards,

Comments

Paolo Abeni April 1, 2025, 10:42 a.m. UTC | #1
On 3/31/25 8:52 AM, Lorenzo Bianconi wrote:
> Fix the following kernel warning deleting HTB offloaded leafs and/or root
> HTB qdisc in airoha_eth driver properly reporting qid in
> airoha_tc_get_htb_get_leaf_queue routine.
> 
> $tc qdisc replace dev eth1 root handle 10: htb offload
> $tc class add dev eth1 arent 10: classid 10:4 htb rate 100mbit ceil 100mbit
> $tc qdisc replace dev eth1 parent 10:4 handle 4: ets bands 8 \
>  quanta 1514 3028 4542 6056 7570 9084 10598 12112
> $tc qdisc del dev eth1 root
> 
> [   55.827864] ------------[ cut here ]------------
> [   55.832493] WARNING: CPU: 3 PID: 2678 at 0xffffffc0798695a4
> [   55.956510] CPU: 3 PID: 2678 Comm: tc Tainted: G           O 6.6.71 #0
> [   55.963557] Hardware name: Airoha AN7581 Evaluation Board (DT)
> [   55.969383] pstate: 20400005 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [   55.976344] pc : 0xffffffc0798695a4
> [   55.979851] lr : 0xffffffc079869a20
> [   55.983358] sp : ffffffc0850536a0
> [   55.986665] x29: ffffffc0850536a0 x28: 0000000000000024 x27: 0000000000000001
> [   55.993800] x26: 0000000000000000 x25: ffffff8008b19000 x24: ffffff800222e800
> [   56.000935] x23: 0000000000000001 x22: 0000000000000000 x21: ffffff8008b19000
> [   56.008071] x20: ffffff8002225800 x19: ffffff800379d000 x18: 0000000000000000
> [   56.015206] x17: ffffffbf9ea59000 x16: ffffffc080018000 x15: 0000000000000000
> [   56.022342] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000001
> [   56.029478] x11: ffffffc081471008 x10: ffffffc081575a98 x9 : 0000000000000000
> [   56.036614] x8 : ffffffc08167fd40 x7 : ffffffc08069e104 x6 : ffffff8007f86000
> [   56.043748] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000001
> [   56.050884] x2 : 0000000000000000 x1 : 0000000000000250 x0 : ffffff800222c000
> [   56.058020] Call trace:
> [   56.060459]  0xffffffc0798695a4
> [   56.063618]  0xffffffc079869a20
> [   56.066777]  __qdisc_destroy+0x40/0xa0
> [   56.070528]  qdisc_put+0x54/0x6c
> [   56.073748]  qdisc_graft+0x41c/0x648
> [   56.077324]  tc_get_qdisc+0x168/0x2f8
> [   56.080978]  rtnetlink_rcv_msg+0x230/0x330
> [   56.085076]  netlink_rcv_skb+0x5c/0x128
> [   56.088913]  rtnetlink_rcv+0x14/0x1c
> [   56.092490]  netlink_unicast+0x1e0/0x2c8
> [   56.096413]  netlink_sendmsg+0x198/0x3c8
> [   56.100337]  ____sys_sendmsg+0x1c4/0x274
> [   56.104261]  ___sys_sendmsg+0x7c/0xc0
> [   56.107924]  __sys_sendmsg+0x44/0x98
> [   56.111492]  __arm64_sys_sendmsg+0x20/0x28
> [   56.115580]  invoke_syscall.constprop.0+0x58/0xfc
> [   56.120285]  do_el0_svc+0x3c/0xbc
> [   56.123592]  el0_svc+0x18/0x4c
> [   56.126647]  el0t_64_sync_handler+0x118/0x124
> [   56.131005]  el0t_64_sync+0x150/0x154
> [   56.134660] ---[ end trace 0000000000000000 ]---
> 
> Fixes: ef1ca9271313b ("net: airoha: Add sched HTB offload support")
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>

Acked-by: Paolo Abeni <pabeni@redhat.com>
diff mbox series

Patch

diff --git a/drivers/net/ethernet/airoha/airoha_eth.c b/drivers/net/ethernet/airoha/airoha_eth.c
index c0a642568ac115ea9df6fbaf7133627a4405a36c..20a96cafc748e97a8ff9ab33a5be71ab62e8c9c5 100644
--- a/drivers/net/ethernet/airoha/airoha_eth.c
+++ b/drivers/net/ethernet/airoha/airoha_eth.c
@@ -2358,7 +2358,7 @@  static int airoha_tc_get_htb_get_leaf_queue(struct airoha_gdm_port *port,
 		return -EINVAL;
 	}
 
-	opt->qid = channel;
+	opt->qid = AIROHA_NUM_TX_RING + channel;
 
 	return 0;
 }