pkt_sched: Manage qdisc list inside of root qdisc.
Idea is from Patrick McHardy. Instead of managing the list of qdiscs on the device level, manage it in the root qdisc of a netdev_queue. This solves all kinds of visibility issues during qdisc destruction. The way to iterate over all qdiscs of a netdev_queue is to visit the netdev_queue->qdisc, and then traverse it's list. The only special case is to ignore builting qdiscs at the root when dumping or doing a qdisc_lookup(). That was not needed previously because builtin qdiscs were not added to the device's qdisc_list. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -636,8 +636,6 @@ struct net_device
|
||||
unsigned int real_num_tx_queues;
|
||||
|
||||
unsigned long tx_queue_len; /* Max frames per queue allowed */
|
||||
spinlock_t qdisc_list_lock;
|
||||
struct list_head qdisc_list;
|
||||
|
||||
/*
|
||||
* One part is mostly used on xmit path (device)
|
||||
|
Reference in New Issue
Block a user