Mailing List Archive

[PATCH net] net: sched: fix lockdep_set_class() typo error for sch->seqlock
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 <linyunsheng@huawei.com>
---
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 [ In reply to ]
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