summaryrefslogtreecommitdiff
path: root/net/sched/sch_generic.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-08-31 06:13:51 +0400
committerDavid S. Miller <davem@davemloft.net>2014-09-02 04:39:56 +0400
commit50cbe9ab5f8d92d2d4a327b56e96559d8f63a1fa (patch)
tree6d46c376e7081c0b32d8d88a74420fd9f7c152b8 /net/sched/sch_generic.c
parenteae3f88ee44251bcca3a085f9565257c6f9f9e69 (diff)
downloadlinux-50cbe9ab5f8d92d2d4a327b56e96559d8f63a1fa.tar.xz
net: Validate xmit SKBs right when we pull them out of the qdisc.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_generic.c')
-rw-r--r--net/sched/sch_generic.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 05b3f5d104af..f178798a5836 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -70,8 +70,11 @@ static inline struct sk_buff *dequeue_skb(struct Qdisc *q)
} else
skb = NULL;
} else {
- if (!(q->flags & TCQ_F_ONETXQUEUE) || !netif_xmit_frozen_or_stopped(txq))
+ if (!(q->flags & TCQ_F_ONETXQUEUE) || !netif_xmit_frozen_or_stopped(txq)) {
skb = q->dequeue(q);
+ if (skb)
+ skb = validate_xmit_skb(skb, qdisc_dev(q));
+ }
}
return skb;