diff options
author | David S. Miller <davem@davemloft.net> | 2008-07-16 05:15:04 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-17 22:21:20 -0400 |
commit | 37437bb2e1ae8af470dfcd5b4ff454110894ccaf (patch) | |
tree | 1795e78a7648252b0c92c972df12b776a28437d7 /include/net/sch_generic.h | |
parent | 7698b4fcabcd790efc4f226bada1e7b5870653af (diff) |
pkt_sched: Schedule qdiscs instead of netdev_queue.
When we have shared qdiscs, packets come out of the qdiscs
for multiple transmit queues.
Therefore it doesn't make any sense to schedule the transmit
queue when logically we cannot know ahead of time the TX
queue of the SKB that the qdisc->dequeue() will give us.
Just for sanity I added a BUG check to make sure we never
get into a state where the noop_qdisc is scheduled.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/sch_generic.h')
-rw-r--r-- | include/net/sch_generic.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index 92417825d387..3cc4b5cd8c6a 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h | |||
@@ -26,6 +26,7 @@ struct qdisc_rate_table | |||
26 | enum qdisc_state_t | 26 | enum qdisc_state_t |
27 | { | 27 | { |
28 | __QDISC_STATE_RUNNING, | 28 | __QDISC_STATE_RUNNING, |
29 | __QDISC_STATE_SCHED, | ||
29 | }; | 30 | }; |
30 | 31 | ||
31 | struct Qdisc | 32 | struct Qdisc |
@@ -45,6 +46,7 @@ struct Qdisc | |||
45 | struct sk_buff *gso_skb; | 46 | struct sk_buff *gso_skb; |
46 | struct sk_buff_head q; | 47 | struct sk_buff_head q; |
47 | struct netdev_queue *dev_queue; | 48 | struct netdev_queue *dev_queue; |
49 | struct Qdisc *next_sched; | ||
48 | struct list_head list; | 50 | struct list_head list; |
49 | 51 | ||
50 | struct gnet_stats_basic bstats; | 52 | struct gnet_stats_basic bstats; |