diff options
Diffstat (limited to 'net')
| -rw-r--r-- | net/mac80211/wme.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c index 5eddf1f32ed9..b1e20ca03ffe 100644 --- a/net/mac80211/wme.c +++ b/net/mac80211/wme.c | |||
| @@ -216,20 +216,15 @@ static int wme_qdiscop_enqueue(struct sk_buff *skb, struct Qdisc* qd) | |||
| 216 | rcu_read_unlock(); | 216 | rcu_read_unlock(); |
| 217 | } | 217 | } |
| 218 | 218 | ||
| 219 | if (unlikely(queue < 0)) { | 219 | tid = skb->priority & QOS_CONTROL_TAG1D_MASK; |
| 220 | kfree_skb(skb); | 220 | pkt_data->queue = (unsigned int) queue; |
| 221 | err = NET_XMIT_DROP; | 221 | qdisc = q->queues[queue]; |
| 222 | } else { | 222 | err = qdisc->enqueue(skb, qdisc); |
| 223 | tid = skb->priority & QOS_CONTROL_TAG1D_MASK; | 223 | if (err == NET_XMIT_SUCCESS) { |
| 224 | pkt_data->queue = (unsigned int) queue; | 224 | qd->q.qlen++; |
| 225 | qdisc = q->queues[queue]; | 225 | qd->bstats.bytes += skb->len; |
| 226 | err = qdisc->enqueue(skb, qdisc); | 226 | qd->bstats.packets++; |
| 227 | if (err == NET_XMIT_SUCCESS) { | 227 | return NET_XMIT_SUCCESS; |
| 228 | qd->q.qlen++; | ||
| 229 | qd->bstats.bytes += skb->len; | ||
| 230 | qd->bstats.packets++; | ||
| 231 | return NET_XMIT_SUCCESS; | ||
| 232 | } | ||
| 233 | } | 228 | } |
| 234 | qd->qstats.drops++; | 229 | qd->qstats.drops++; |
| 235 | return err; | 230 | return err; |
