From: Eric Dumazet <edumazet@google.com>
Date: Tue, 4 Jan 2022 17:04:39 +0000 (-0800)
Subject: net/sched: add missing tracker information in qdisc_create()
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=88248c357c2a8dbff899770dc02e2edf89d989aa;p=linux.git

net/sched: add missing tracker information in qdisc_create()

qdisc_create() error path needs to use dev_put_track()
because qdisc_alloc() allocated the tracker.

Fixes: 606509f27f67 ("net/sched: add net device refcount tracker to struct Qdisc")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20220104170439.3790052-1-eric.dumazet@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---

diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index efcd0b5e9a323..c9c6f49f9c284 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -1292,7 +1292,7 @@ err_out5:
 	if (ops->destroy)
 		ops->destroy(sch);
 err_out3:
-	dev_put(dev);
+	dev_put_track(dev, &sch->dev_tracker);
 	qdisc_free(sch);
 err_out2:
 	module_put(ops->owner);