Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        spinlock_t              seqlock;
 
        struct rcu_head         rcu;
-
+       netdevice_tracker       dev_tracker;
        /* private data */
        long privdata[] ____cacheline_aligned;
 };
 
        sch->enqueue = ops->enqueue;
        sch->dequeue = ops->dequeue;
        sch->dev_queue = dev_queue;
-       dev_hold(dev);
+       dev_hold_track(dev, &sch->dev_tracker, GFP_KERNEL);
        refcount_set(&sch->refcnt, 1);
 
        return sch;
                ops->destroy(qdisc);
 
        module_put(ops->owner);
-       dev_put(qdisc_dev(qdisc));
+       dev_put_track(qdisc_dev(qdisc), &qdisc->dev_tracker);
 
        trace_qdisc_destroy(qdisc);