VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / net / sched / sch_teql.c
index da5e89c..963e87a 100644 (file)
@@ -81,7 +81,7 @@ struct teql_sched_data
        struct sk_buff_head q;
 };
 
-#define NEXT_SLAVE(q) (((struct teql_sched_data*)((q)->data))->next)
+#define NEXT_SLAVE(q) (((struct teql_sched_data*)qdisc_priv(q))->next)
 
 #define FMASK (IFF_BROADCAST|IFF_POINTOPOINT|IFF_BROADCAST)
 
@@ -91,7 +91,7 @@ static int
 teql_enqueue(struct sk_buff *skb, struct Qdisc* sch)
 {
        struct net_device *dev = sch->dev;
-       struct teql_sched_data *q = (struct teql_sched_data *)sch->data;
+       struct teql_sched_data *q = qdisc_priv(sch);
 
        __skb_queue_tail(&q->q, skb);
        if (q->q.qlen <= dev->tx_queue_len) {
@@ -109,7 +109,7 @@ teql_enqueue(struct sk_buff *skb, struct Qdisc* sch)
 static int
 teql_requeue(struct sk_buff *skb, struct Qdisc* sch)
 {
-       struct teql_sched_data *q = (struct teql_sched_data *)sch->data;
+       struct teql_sched_data *q = qdisc_priv(sch);
 
        __skb_queue_head(&q->q, skb);
        return 0;
@@ -118,7 +118,7 @@ teql_requeue(struct sk_buff *skb, struct Qdisc* sch)
 static struct sk_buff *
 teql_dequeue(struct Qdisc* sch)
 {
-       struct teql_sched_data *dat = (struct teql_sched_data *)sch->data;
+       struct teql_sched_data *dat = qdisc_priv(sch);
        struct sk_buff *skb;
 
        skb = __skb_dequeue(&dat->q);
@@ -143,7 +143,7 @@ teql_neigh_release(struct neighbour *n)
 static void
 teql_reset(struct Qdisc* sch)
 {
-       struct teql_sched_data *dat = (struct teql_sched_data *)sch->data;
+       struct teql_sched_data *dat = qdisc_priv(sch);
 
        skb_queue_purge(&dat->q);
        sch->q.qlen = 0;
@@ -154,7 +154,7 @@ static void
 teql_destroy(struct Qdisc* sch)
 {
        struct Qdisc *q, *prev;
-       struct teql_sched_data *dat = (struct teql_sched_data *)sch->data;
+       struct teql_sched_data *dat = qdisc_priv(sch);
        struct teql_master *master = dat->m;
 
        if ((prev = master->slaves) != NULL) {
@@ -184,7 +184,7 @@ static int teql_qdisc_init(struct Qdisc *sch, struct rtattr *opt)
 {
        struct net_device *dev = sch->dev;
        struct teql_master *m = (struct teql_master*)sch->ops;
-       struct teql_sched_data *q = (struct teql_sched_data *)sch->data;
+       struct teql_sched_data *q = qdisc_priv(sch);
 
        if (dev->hard_header_len > m->dev->hard_header_len)
                return -EINVAL;
@@ -229,7 +229,7 @@ static int teql_qdisc_init(struct Qdisc *sch, struct rtattr *opt)
 static int
 __teql_resolve(struct sk_buff *skb, struct sk_buff *skb_res, struct net_device *dev)
 {
-       struct teql_sched_data *q = (void*)dev->qdisc->data;
+       struct teql_sched_data *q = qdisc_priv(dev->qdisc);
        struct neighbour *mn = skb->dst->neighbour;
        struct neighbour *n = q->ncache;