diff options
author | David S. Miller <davem@davemloft.net> | 2008-07-08 19:55:56 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-08 19:55:56 -0400 |
commit | bb949fbd1878973c3539d9aecff52f284482a937 (patch) | |
tree | e8bde854b18be79723502167c16e2131914a75b7 /net/sched/sch_cbq.c | |
parent | e65d22e18038eed7307276e46810d884c402d57d (diff) |
netdev: Create netdev_queue abstraction.
A netdev_queue is an entity managed by a qdisc.
Currently there is one RX and one TX queue, and a netdev_queue merely
contains a backpointer to the net_device.
The Qdisc struct is augmented with a netdev_queue pointer as well.
Eventually the 'dev' Qdisc member will go away and we will have the
resulting hierarchy:
net_device --> netdev_queue --> Qdisc
Also, qdisc_alloc() and qdisc_create_dflt() now take a netdev_queue
pointer argument.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_cbq.c')
-rw-r--r-- | net/sched/sch_cbq.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c index 968b4c73c9c1..d360dcd0818b 100644 --- a/net/sched/sch_cbq.c +++ b/net/sched/sch_cbq.c | |||
@@ -1401,7 +1401,8 @@ static int cbq_init(struct Qdisc *sch, struct nlattr *opt) | |||
1401 | q->link.sibling = &q->link; | 1401 | q->link.sibling = &q->link; |
1402 | q->link.common.classid = sch->handle; | 1402 | q->link.common.classid = sch->handle; |
1403 | q->link.qdisc = sch; | 1403 | q->link.qdisc = sch; |
1404 | if (!(q->link.q = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops, | 1404 | if (!(q->link.q = qdisc_create_dflt(sch->dev, sch->dev_queue, |
1405 | &pfifo_qdisc_ops, | ||
1405 | sch->handle))) | 1406 | sch->handle))) |
1406 | q->link.q = &noop_qdisc; | 1407 | q->link.q = &noop_qdisc; |
1407 | 1408 | ||
@@ -1645,7 +1646,8 @@ static int cbq_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, | |||
1645 | 1646 | ||
1646 | if (cl) { | 1647 | if (cl) { |
1647 | if (new == NULL) { | 1648 | if (new == NULL) { |
1648 | new = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops, | 1649 | new = qdisc_create_dflt(sch->dev, sch->dev_queue, |
1650 | &pfifo_qdisc_ops, | ||
1649 | cl->common.classid); | 1651 | cl->common.classid); |
1650 | if (new == NULL) | 1652 | if (new == NULL) |
1651 | return -ENOBUFS; | 1653 | return -ENOBUFS; |
@@ -1877,7 +1879,8 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t | |||
1877 | cl->R_tab = rtab; | 1879 | cl->R_tab = rtab; |
1878 | rtab = NULL; | 1880 | rtab = NULL; |
1879 | cl->refcnt = 1; | 1881 | cl->refcnt = 1; |
1880 | if (!(cl->q = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops, classid))) | 1882 | if (!(cl->q = qdisc_create_dflt(sch->dev, sch->dev_queue, |
1883 | &pfifo_qdisc_ops, classid))) | ||
1881 | cl->q = &noop_qdisc; | 1884 | cl->q = &noop_qdisc; |
1882 | cl->common.classid = classid; | 1885 | cl->common.classid = classid; |
1883 | cl->tparent = parent; | 1886 | cl->tparent = parent; |