X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Fsched%2Fsch_red.c;h=96f7cd3336fed83e3996705f3823d29e008ab92a;hb=9c920a8402f2bb9bd931801d429b65f4eb6a262b;hp=5630abb209adb1ac1f3f88856ee434e34e8c4dbe;hpb=a91482bdcc2e0f6035702e46f1b99043a0893346;p=linux-2.6.git diff --git a/net/sched/sch_red.c b/net/sched/sch_red.c index 5630abb20..96f7cd333 100644 --- a/net/sched/sch_red.c +++ b/net/sched/sch_red.c @@ -180,7 +180,7 @@ static int red_ecn_mark(struct sk_buff *skb) static int red_enqueue(struct sk_buff *skb, struct Qdisc* sch) { - struct red_sched_data *q = qdisc_priv(sch); + struct red_sched_data *q = (struct red_sched_data *)sch->data; psched_time_t now; @@ -189,7 +189,7 @@ red_enqueue(struct sk_buff *skb, struct Qdisc* sch) int shift; PSCHED_GET_TIME(now); - us_idle = PSCHED_TDIFF_SAFE(now, q->qidlestart, q->Scell_max); + us_idle = PSCHED_TDIFF_SAFE(now, q->qidlestart, q->Scell_max, 0); PSCHED_SET_PASTPERFECT(q->qidlestart); /* @@ -303,7 +303,7 @@ drop: static int red_requeue(struct sk_buff *skb, struct Qdisc* sch) { - struct red_sched_data *q = qdisc_priv(sch); + struct red_sched_data *q = (struct red_sched_data *)sch->data; PSCHED_SET_PASTPERFECT(q->qidlestart); @@ -316,7 +316,7 @@ static struct sk_buff * red_dequeue(struct Qdisc* sch) { struct sk_buff *skb; - struct red_sched_data *q = qdisc_priv(sch); + struct red_sched_data *q = (struct red_sched_data *)sch->data; skb = __skb_dequeue(&sch->q); if (skb) { @@ -330,7 +330,7 @@ red_dequeue(struct Qdisc* sch) static unsigned int red_drop(struct Qdisc* sch) { struct sk_buff *skb; - struct red_sched_data *q = qdisc_priv(sch); + struct red_sched_data *q = (struct red_sched_data *)sch->data; skb = __skb_dequeue_tail(&sch->q); if (skb) { @@ -347,7 +347,7 @@ static unsigned int red_drop(struct Qdisc* sch) static void red_reset(struct Qdisc* sch) { - struct red_sched_data *q = qdisc_priv(sch); + struct red_sched_data *q = (struct red_sched_data *)sch->data; __skb_queue_purge(&sch->q); sch->stats.backlog = 0; @@ -358,7 +358,7 @@ static void red_reset(struct Qdisc* sch) static int red_change(struct Qdisc *sch, struct rtattr *opt) { - struct red_sched_data *q = qdisc_priv(sch); + struct red_sched_data *q = (struct red_sched_data *)sch->data; struct rtattr *tb[TCA_RED_STAB]; struct tc_red_qopt *ctl; @@ -407,7 +407,7 @@ rtattr_failure: static int red_dump(struct Qdisc *sch, struct sk_buff *skb) { - struct red_sched_data *q = qdisc_priv(sch); + struct red_sched_data *q = (struct red_sched_data *)sch->data; unsigned char *b = skb->tail; struct rtattr *rta; struct tc_red_qopt opt; @@ -434,6 +434,10 @@ rtattr_failure: return -1; } +static void red_destroy(struct Qdisc *sch) +{ +} + static struct Qdisc_ops red_qdisc_ops = { .next = NULL, .cl_ops = NULL, @@ -445,6 +449,7 @@ static struct Qdisc_ops red_qdisc_ops = { .drop = red_drop, .init = red_init, .reset = red_reset, + .destroy = red_destroy, .change = red_change, .dump = red_dump, .owner = THIS_MODULE,