diff options
Diffstat (limited to 'drivers/net/r8169.c')
-rw-r--r-- | drivers/net/r8169.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index d9bb51bb4b9d..c921ec32c232 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c | |||
@@ -2570,6 +2570,15 @@ static void rtl8169_tx_interrupt(struct net_device *dev, | |||
2570 | (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)) { | 2570 | (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)) { |
2571 | netif_wake_queue(dev); | 2571 | netif_wake_queue(dev); |
2572 | } | 2572 | } |
2573 | /* | ||
2574 | * 8168 hack: TxPoll requests are lost when the Tx packets are | ||
2575 | * too close. Let's kick an extra TxPoll request when a burst | ||
2576 | * of start_xmit activity is detected (if it is not detected, | ||
2577 | * it is slow enough). -- FR | ||
2578 | */ | ||
2579 | smp_rmb(); | ||
2580 | if (tp->cur_tx != dirty_tx) | ||
2581 | RTL_W8(TxPoll, NPQ); | ||
2573 | } | 2582 | } |
2574 | } | 2583 | } |
2575 | 2584 | ||