aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched/sch_prio.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sched/sch_prio.c')
-rw-r--r--net/sched/sch_prio.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/net/sched/sch_prio.c b/net/sched/sch_prio.c
index 504a78cdb718..3651da3e2802 100644
--- a/net/sched/sch_prio.c
+++ b/net/sched/sch_prio.c
@@ -120,6 +120,19 @@ prio_requeue(struct sk_buff *skb, struct Qdisc* sch)
120 return ret; 120 return ret;
121} 121}
122 122
123static struct sk_buff *prio_peek(struct Qdisc *sch)
124{
125 struct prio_sched_data *q = qdisc_priv(sch);
126 int prio;
127
128 for (prio = 0; prio < q->bands; prio++) {
129 struct Qdisc *qdisc = q->queues[prio];
130 struct sk_buff *skb = qdisc->ops->peek(qdisc);
131 if (skb)
132 return skb;
133 }
134 return NULL;
135}
123 136
124static struct sk_buff *prio_dequeue(struct Qdisc* sch) 137static struct sk_buff *prio_dequeue(struct Qdisc* sch)
125{ 138{
@@ -421,6 +434,7 @@ static struct Qdisc_ops prio_qdisc_ops __read_mostly = {
421 .priv_size = sizeof(struct prio_sched_data), 434 .priv_size = sizeof(struct prio_sched_data),
422 .enqueue = prio_enqueue, 435 .enqueue = prio_enqueue,
423 .dequeue = prio_dequeue, 436 .dequeue = prio_dequeue,
437 .peek = prio_peek,
424 .requeue = prio_requeue, 438 .requeue = prio_requeue,
425 .drop = prio_drop, 439 .drop = prio_drop,
426 .init = prio_init, 440 .init = prio_init,