|
@@ -946,16 +946,16 @@ static void __lpc_handle_xmit(struct net_device *ndev)
|
|
/* Update stats */
|
|
/* Update stats */
|
|
ndev->stats.tx_packets++;
|
|
ndev->stats.tx_packets++;
|
|
ndev->stats.tx_bytes += skb->len;
|
|
ndev->stats.tx_bytes += skb->len;
|
|
-
|
|
|
|
- /* Free buffer */
|
|
|
|
- dev_kfree_skb_irq(skb);
|
|
|
|
}
|
|
}
|
|
|
|
+ dev_kfree_skb_irq(skb);
|
|
|
|
|
|
txcidx = readl(LPC_ENET_TXCONSUMEINDEX(pldat->net_base));
|
|
txcidx = readl(LPC_ENET_TXCONSUMEINDEX(pldat->net_base));
|
|
}
|
|
}
|
|
|
|
|
|
- if (netif_queue_stopped(ndev))
|
|
|
|
- netif_wake_queue(ndev);
|
|
|
|
|
|
+ if (pldat->num_used_tx_buffs <= ENET_TX_DESC/2) {
|
|
|
|
+ if (netif_queue_stopped(ndev))
|
|
|
|
+ netif_wake_queue(ndev);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
static int __lpc_handle_recv(struct net_device *ndev, int budget)
|
|
static int __lpc_handle_recv(struct net_device *ndev, int budget)
|