diff options
-rw-r--r-- | net/sched/sch_generic.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index c2e87e63b832..797ebef73642 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c | |||
@@ -63,10 +63,6 @@ static struct sk_buff *try_bulk_dequeue_skb(struct Qdisc *q, | |||
63 | struct sk_buff *skb, *tail_skb = head_skb; | 63 | struct sk_buff *skb, *tail_skb = head_skb; |
64 | 64 | ||
65 | while (bytelimit > 0) { | 65 | while (bytelimit > 0) { |
66 | /* For now, don't bulk dequeue GSO (or GSO segmented) pkts */ | ||
67 | if (tail_skb->next || skb_is_gso(tail_skb)) | ||
68 | break; | ||
69 | |||
70 | skb = q->dequeue(q); | 66 | skb = q->dequeue(q); |
71 | if (!skb) | 67 | if (!skb) |
72 | break; | 68 | break; |
@@ -76,11 +72,9 @@ static struct sk_buff *try_bulk_dequeue_skb(struct Qdisc *q, | |||
76 | if (!skb) | 72 | if (!skb) |
77 | break; | 73 | break; |
78 | 74 | ||
79 | /* "skb" can be a skb list after validate call above | 75 | while (tail_skb->next) /* GSO list goto tail */ |
80 | * (GSO segmented), but it is okay to append it to | 76 | tail_skb = tail_skb->next; |
81 | * current tail_skb->next, because next round will exit | 77 | |
82 | * in-case "tail_skb->next" is a skb list. | ||
83 | */ | ||
84 | tail_skb->next = skb; | 78 | tail_skb->next = skb; |
85 | tail_skb = skb; | 79 | tail_skb = skb; |
86 | } | 80 | } |