diff mbox series

[net] net/sched: taprio: Fix init procedure

Message ID 20210730165321.1179952-1-yannick.vignon@oss.nxp.com
State New
Headers show
Series [net] net/sched: taprio: Fix init procedure | expand

Commit Message

Yannick Vignon July 30, 2021, 4:53 p.m. UTC
From: Yannick Vignon <yannick.vignon@nxp.com>

Commit 13511704f8d759 ("net: taprio offload: enforce qdisc to netdev queue mapping")
resulted in duplicate entries in the qdisc hash.
While this did not impact the overall operation of the qdisc and taprio
code paths, it did result in an infinite loop when dumping the qdisc
properties, at least on one target (NXP LS1028 ARDB).
Removing the duplicate call to qdisc_hash_add() solves the problem.

Signed-off-by: Yannick Vignon <yannick.vignon@nxp.com>
Fixes: 13511704f8d759 ("net: taprio offload: enforce qdisc to netdev queue mapping")
---
 net/sched/sch_taprio.c | 2 --
 1 file changed, 2 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Aug. 2, 2021, 10:50 a.m. UTC | #1
Hello:

This patch was applied to netdev/net.git (refs/heads/master):

On Fri, 30 Jul 2021 18:53:21 +0200 you wrote:
> From: Yannick Vignon <yannick.vignon@nxp.com>

> 

> Commit 13511704f8d759 ("net: taprio offload: enforce qdisc to netdev queue mapping")

> resulted in duplicate entries in the qdisc hash.

> While this did not impact the overall operation of the qdisc and taprio

> code paths, it did result in an infinite loop when dumping the qdisc

> properties, at least on one target (NXP LS1028 ARDB).

> Removing the duplicate call to qdisc_hash_add() solves the problem.

> 

> [...]


Here is the summary with links:
  - [net] net/sched: taprio: Fix init procedure
    https://git.kernel.org/netdev/net/c/ebca25ead071

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
diff mbox series

Patch

diff --git a/net/sched/sch_taprio.c b/net/sched/sch_taprio.c
index 07b30d0601d7..9c79374457a0 100644
--- a/net/sched/sch_taprio.c
+++ b/net/sched/sch_taprio.c
@@ -1739,8 +1739,6 @@  static void taprio_attach(struct Qdisc *sch)
 		if (FULL_OFFLOAD_IS_ENABLED(q->flags)) {
 			qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT;
 			old = dev_graft_qdisc(qdisc->dev_queue, qdisc);
-			if (ntx < dev->real_num_tx_queues)
-				qdisc_hash_add(qdisc, false);
 		} else {
 			old = dev_graft_qdisc(qdisc->dev_queue, sch);
 			qdisc_refcount_inc(sch);