]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/sched/sch_gred.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit...
[karo-tx-linux.git] / net / sched / sch_gred.c
index c1ad6b8de105a60bbb4427d8f49e47b7e5adc46e..51dcc2aa5c926b735fa683135bddaf3c66114355 100644 (file)
@@ -18,6 +18,7 @@
  *  For all the glorious comments look at include/net/red.h
  */
 
+#include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
@@ -240,26 +241,6 @@ congestion_drop:
        return NET_XMIT_CN;
 }
 
-static int gred_requeue(struct sk_buff *skb, struct Qdisc* sch)
-{
-       struct gred_sched *t = qdisc_priv(sch);
-       struct gred_sched_data *q;
-       u16 dp = tc_index_to_dp(skb);
-
-       if (dp >= t->DPs || (q = t->tab[dp]) == NULL) {
-               if (net_ratelimit())
-                       printk(KERN_WARNING "GRED: Unable to relocate VQ 0x%x "
-                              "for requeue, screwing up backlog.\n",
-                              tc_index_to_dp(skb));
-       } else {
-               if (red_is_idling(&q->parms))
-                       red_end_of_idle_period(&q->parms);
-               q->backlog += qdisc_pkt_len(skb);
-       }
-
-       return qdisc_requeue(skb, sch);
-}
-
 static struct sk_buff *gred_dequeue(struct Qdisc* sch)
 {
        struct sk_buff *skb;
@@ -602,7 +583,7 @@ static struct Qdisc_ops gred_qdisc_ops __read_mostly = {
        .priv_size      =       sizeof(struct gred_sched),
        .enqueue        =       gred_enqueue,
        .dequeue        =       gred_dequeue,
-       .requeue        =       gred_requeue,
+       .peek           =       qdisc_peek_head,
        .drop           =       gred_drop,
        .init           =       gred_init,
        .reset          =       gred_reset,