diff options
author | David S. Miller <davem@davemloft.net> | 2016-06-10 14:52:24 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-06-10 14:52:24 -0400 |
commit | 1578b0a5e92825334760741e5c166b8873886f1b (patch) | |
tree | ac8299191f37990111f7d4b615601f4356e24fea /include/net/sch_generic.h | |
parent | 3d5479e92087f6249231e26a2d7327e86a8d0dfc (diff) | |
parent | 698ea54dde6768d4a96080d0fb796cb3a4eadaf8 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
net/sched/act_police.c
net/sched/sch_drr.c
net/sched/sch_hfsc.c
net/sched/sch_prio.c
net/sched/sch_red.c
net/sched/sch_tbf.c
In net-next the drop methods of the packet schedulers got removed, so
the bug fixes to them in 'net' are irrelevant.
A packet action unload crash fix conflicts with the addition of the
new firstuse timestamp.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/sch_generic.h')
-rw-r--r-- | include/net/sch_generic.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index a4c0f1649e2b..9f3581980c15 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h | |||
@@ -158,6 +158,7 @@ struct Qdisc_class_ops { | |||
158 | 158 | ||
159 | /* Filter manipulation */ | 159 | /* Filter manipulation */ |
160 | struct tcf_proto __rcu ** (*tcf_chain)(struct Qdisc *, unsigned long); | 160 | struct tcf_proto __rcu ** (*tcf_chain)(struct Qdisc *, unsigned long); |
161 | bool (*tcf_cl_offload)(u32 classid); | ||
161 | unsigned long (*bind_tcf)(struct Qdisc *, unsigned long, | 162 | unsigned long (*bind_tcf)(struct Qdisc *, unsigned long, |
162 | u32 classid); | 163 | u32 classid); |
163 | void (*unbind_tcf)(struct Qdisc *, unsigned long); | 164 | void (*unbind_tcf)(struct Qdisc *, unsigned long); |
@@ -672,9 +673,11 @@ static inline struct sk_buff *qdisc_peek_dequeued(struct Qdisc *sch) | |||
672 | /* we can reuse ->gso_skb because peek isn't called for root qdiscs */ | 673 | /* we can reuse ->gso_skb because peek isn't called for root qdiscs */ |
673 | if (!sch->gso_skb) { | 674 | if (!sch->gso_skb) { |
674 | sch->gso_skb = sch->dequeue(sch); | 675 | sch->gso_skb = sch->dequeue(sch); |
675 | if (sch->gso_skb) | 676 | if (sch->gso_skb) { |
676 | /* it's still part of the queue */ | 677 | /* it's still part of the queue */ |
678 | qdisc_qstats_backlog_inc(sch, sch->gso_skb); | ||
677 | sch->q.qlen++; | 679 | sch->q.qlen++; |
680 | } | ||
678 | } | 681 | } |
679 | 682 | ||
680 | return sch->gso_skb; | 683 | return sch->gso_skb; |
@@ -687,6 +690,7 @@ static inline struct sk_buff *qdisc_dequeue_peeked(struct Qdisc *sch) | |||
687 | 690 | ||
688 | if (skb) { | 691 | if (skb) { |
689 | sch->gso_skb = NULL; | 692 | sch->gso_skb = NULL; |
693 | qdisc_qstats_backlog_dec(sch, skb); | ||
690 | sch->q.qlen--; | 694 | sch->q.qlen--; |
691 | } else { | 695 | } else { |
692 | skb = sch->dequeue(sch); | 696 | skb = sch->dequeue(sch); |