aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched
diff options
context:
space:
mode:
Diffstat (limited to 'net/sched')
-rw-r--r--net/sched/act_ipt.c2
-rw-r--r--net/sched/sch_generic.c2
-rw-r--r--net/sched/sch_prio.c15
-rw-r--r--net/sched/sch_sfq.c2
4 files changed, 19 insertions, 2 deletions
diff --git a/net/sched/act_ipt.c b/net/sched/act_ipt.c
index 01e69138578d..4c68c718f5ec 100644
--- a/net/sched/act_ipt.c
+++ b/net/sched/act_ipt.c
@@ -52,7 +52,7 @@ static struct tcf_hashinfo ipt_hash_info = {
52 52
53static int ipt_init_target(struct ipt_entry_target *t, char *table, unsigned int hook) 53static int ipt_init_target(struct ipt_entry_target *t, char *table, unsigned int hook)
54{ 54{
55 struct ipt_target *target; 55 struct xt_target *target;
56 int ret = 0; 56 int ret = 0;
57 57
58 target = xt_request_find_target(AF_INET, t->u.user.name, 58 target = xt_request_find_target(AF_INET, t->u.user.name,
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index bc116bd6937c..3b6e6a780927 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -209,7 +209,7 @@ static void dev_watchdog(unsigned long arg)
209 dev->name); 209 dev->name);
210 dev->tx_timeout(dev); 210 dev->tx_timeout(dev);
211 } 211 }
212 if (!mod_timer(&dev->watchdog_timer, jiffies + dev->watchdog_timeo)) 212 if (!mod_timer(&dev->watchdog_timer, round_jiffies(jiffies + dev->watchdog_timeo)))
213 dev_hold(dev); 213 dev_hold(dev);
214 } 214 }
215 } 215 }
diff --git a/net/sched/sch_prio.c b/net/sched/sch_prio.c
index 2567b4c96c1e..000e043ebd62 100644
--- a/net/sched/sch_prio.c
+++ b/net/sched/sch_prio.c
@@ -372,6 +372,20 @@ static int prio_dump_class(struct Qdisc *sch, unsigned long cl, struct sk_buff *
372 return 0; 372 return 0;
373} 373}
374 374
375static int prio_dump_class_stats(struct Qdisc *sch, unsigned long cl,
376 struct gnet_dump *d)
377{
378 struct prio_sched_data *q = qdisc_priv(sch);
379 struct Qdisc *cl_q;
380
381 cl_q = q->queues[cl - 1];
382 if (gnet_stats_copy_basic(d, &cl_q->bstats) < 0 ||
383 gnet_stats_copy_queue(d, &cl_q->qstats) < 0)
384 return -1;
385
386 return 0;
387}
388
375static void prio_walk(struct Qdisc *sch, struct qdisc_walker *arg) 389static void prio_walk(struct Qdisc *sch, struct qdisc_walker *arg)
376{ 390{
377 struct prio_sched_data *q = qdisc_priv(sch); 391 struct prio_sched_data *q = qdisc_priv(sch);
@@ -414,6 +428,7 @@ static struct Qdisc_class_ops prio_class_ops = {
414 .bind_tcf = prio_bind, 428 .bind_tcf = prio_bind,
415 .unbind_tcf = prio_put, 429 .unbind_tcf = prio_put,
416 .dump = prio_dump_class, 430 .dump = prio_dump_class,
431 .dump_stats = prio_dump_class_stats,
417}; 432};
418 433
419static struct Qdisc_ops prio_qdisc_ops = { 434static struct Qdisc_ops prio_qdisc_ops = {
diff --git a/net/sched/sch_sfq.c b/net/sched/sch_sfq.c
index 459cda258a5c..82844801e421 100644
--- a/net/sched/sch_sfq.c
+++ b/net/sched/sch_sfq.c
@@ -143,6 +143,7 @@ static unsigned sfq_hash(struct sfq_sched_data *q, struct sk_buff *skb)
143 if (!(iph->frag_off&htons(IP_MF|IP_OFFSET)) && 143 if (!(iph->frag_off&htons(IP_MF|IP_OFFSET)) &&
144 (iph->protocol == IPPROTO_TCP || 144 (iph->protocol == IPPROTO_TCP ||
145 iph->protocol == IPPROTO_UDP || 145 iph->protocol == IPPROTO_UDP ||
146 iph->protocol == IPPROTO_UDPLITE ||
146 iph->protocol == IPPROTO_SCTP || 147 iph->protocol == IPPROTO_SCTP ||
147 iph->protocol == IPPROTO_DCCP || 148 iph->protocol == IPPROTO_DCCP ||
148 iph->protocol == IPPROTO_ESP)) 149 iph->protocol == IPPROTO_ESP))
@@ -156,6 +157,7 @@ static unsigned sfq_hash(struct sfq_sched_data *q, struct sk_buff *skb)
156 h2 = iph->saddr.s6_addr32[3]^iph->nexthdr; 157 h2 = iph->saddr.s6_addr32[3]^iph->nexthdr;
157 if (iph->nexthdr == IPPROTO_TCP || 158 if (iph->nexthdr == IPPROTO_TCP ||
158 iph->nexthdr == IPPROTO_UDP || 159 iph->nexthdr == IPPROTO_UDP ||
160 iph->nexthdr == IPPROTO_UDPLITE ||
159 iph->nexthdr == IPPROTO_SCTP || 161 iph->nexthdr == IPPROTO_SCTP ||
160 iph->nexthdr == IPPROTO_DCCP || 162 iph->nexthdr == IPPROTO_DCCP ||
161 iph->nexthdr == IPPROTO_ESP) 163 iph->nexthdr == IPPROTO_ESP)