[PATCH net] net: sched: fix lockdep_set_class() typo error for sch->seqlock

Subsystems: networking [general], tc subsystem, the rest

STALE1826d

2 messages, 2 authors, 2021-08-04 · open the first message on its own page

[PATCH net] net: sched: fix lockdep_set_class() typo error for sch->seqlock

From: Yunsheng Lin <hidden>
Date: 2021-08-03 10:59:25

According to comment in qdisc_alloc(), sch->seqlock's lockdep
class key should be set to qdisc_tx_busylock, due to possible
type error, sch->busylock's lockdep class key is set to
qdisc_tx_busylock, which is duplicated because sch->busylock's
lockdep class key is already set in qdisc_alloc().

So fix it by replacing sch->busylock with sch->seqlock.

Fixes: 96009c7d500e ("sched: replace __QDISC_STATE_RUNNING bit with a spin lock")
Signed-off-by: Yunsheng Lin <redacted>
---
commit ab92d68fc22f ("net: core: add generic lockdep keys")
seems to fix the above error without mentioning that, and then
it is reverted by commit 1a33e10e4a95 ("net: partially revert
dynamic lockdep key changes"), but the blamed commit still be
96009c7d500e ("sched: replace __QDISC_STATE_RUNNING bit with
a spin lock").
---
 net/sched/sch_generic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index d9ac60f..a8dd06c 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -913,7 +913,7 @@ struct Qdisc *qdisc_alloc(struct netdev_queue *dev_queue,
 
 	/* seqlock has the same scope of busylock, for NOLOCK qdisc */
 	spin_lock_init(&sch->seqlock);
-	lockdep_set_class(&sch->busylock,
+	lockdep_set_class(&sch->seqlock,
 			  dev->qdisc_tx_busylock ?: &qdisc_tx_busylock);
 
 	seqcount_init(&sch->running);
-- 
2.7.4

Re: [PATCH net] net: sched: fix lockdep_set_class() typo error for sch->seqlock

From: patchwork-bot+netdevbpf@kernel.org
Date: 2021-08-04 09:10:11

Hello:

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

On Tue, 3 Aug 2021 18:58:21 +0800 you wrote:
According to comment in qdisc_alloc(), sch->seqlock's lockdep
class key should be set to qdisc_tx_busylock, due to possible
type error, sch->busylock's lockdep class key is set to
qdisc_tx_busylock, which is duplicated because sch->busylock's
lockdep class key is already set in qdisc_alloc().

So fix it by replacing sch->busylock with sch->seqlock.

[...]
Here is the summary with links:
  - [net] net: sched: fix lockdep_set_class() typo error for sch->seqlock
    https://git.kernel.org/netdev/net/c/06f5553e0f0c

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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help