|
@@ -572,6 +572,18 @@ struct Qdisc noop_qdisc = {
|
|
|
.dev_queue = &noop_netdev_queue,
|
|
|
.running = SEQCNT_ZERO(noop_qdisc.running),
|
|
|
.busylock = __SPIN_LOCK_UNLOCKED(noop_qdisc.busylock),
|
|
|
+ .gso_skb = {
|
|
|
+ .next = (struct sk_buff *)&noop_qdisc.gso_skb,
|
|
|
+ .prev = (struct sk_buff *)&noop_qdisc.gso_skb,
|
|
|
+ .qlen = 0,
|
|
|
+ .lock = __SPIN_LOCK_UNLOCKED(noop_qdisc.gso_skb.lock),
|
|
|
+ },
|
|
|
+ .skb_bad_txq = {
|
|
|
+ .next = (struct sk_buff *)&noop_qdisc.skb_bad_txq,
|
|
|
+ .prev = (struct sk_buff *)&noop_qdisc.skb_bad_txq,
|
|
|
+ .qlen = 0,
|
|
|
+ .lock = __SPIN_LOCK_UNLOCKED(noop_qdisc.skb_bad_txq.lock),
|
|
|
+ },
|
|
|
};
|
|
|
EXPORT_SYMBOL(noop_qdisc);
|
|
|
|
|
@@ -1273,8 +1285,6 @@ static void dev_init_scheduler_queue(struct net_device *dev,
|
|
|
|
|
|
rcu_assign_pointer(dev_queue->qdisc, qdisc);
|
|
|
dev_queue->qdisc_sleeping = qdisc;
|
|
|
- __skb_queue_head_init(&qdisc->gso_skb);
|
|
|
- __skb_queue_head_init(&qdisc->skb_bad_txq);
|
|
|
}
|
|
|
|
|
|
void dev_init_scheduler(struct net_device *dev)
|