|
@@ -3340,9 +3340,9 @@ static void lan78xx_tx_bh(struct lan78xx_net *dev)
|
|
|
count = 0;
|
|
|
length = 0;
|
|
|
spin_lock_irqsave(&tqp->lock, flags);
|
|
|
- for (skb = tqp->next; pkt_cnt < tqp->qlen; skb = skb->next) {
|
|
|
+ skb_queue_walk(tqp, skb) {
|
|
|
if (skb_is_gso(skb)) {
|
|
|
- if (pkt_cnt) {
|
|
|
+ if (!skb_queue_is_first(tqp, skb)) {
|
|
|
/* handle previous packets first */
|
|
|
break;
|
|
|
}
|