summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/rdc/r6040.c
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2016-07-04 23:36:05 +0200
committerDavid S. Miller <davem@davemloft.net>2016-07-05 09:10:29 +0200
commit9507ffc2acf04c9b1aa02e346225d268c07d79f0 (patch)
tree2bc7d9d77c1a0ebaa67da84ddea45d5d2db789dc /drivers/net/ethernet/rdc/r6040.c
parentnet: r6040: Reclaim transmitted buffers in NAPI (diff)
downloadlinux-9507ffc2acf04c9b1aa02e346225d268c07d79f0.tar.xz
linux-9507ffc2acf04c9b1aa02e346225d268c07d79f0.zip
net: r6040: Check for skb->xmit_more
Kick the transmission only if this is the last SKB to transmit or the queue is not already stopped. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/rdc/r6040.c')
-rw-r--r--drivers/net/ethernet/rdc/r6040.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/rdc/r6040.c b/drivers/net/ethernet/rdc/r6040.c
index 4bf78f18a937..96b2d639c3c1 100644
--- a/drivers/net/ethernet/rdc/r6040.c
+++ b/drivers/net/ethernet/rdc/r6040.c
@@ -840,7 +840,8 @@ static netdev_tx_t r6040_start_xmit(struct sk_buff *skb,
skb_tx_timestamp(skb);
/* Trigger the MAC to check the TX descriptor */
- iowrite16(TM2TX, ioaddr + MTPR);
+ if (!skb->xmit_more || netif_queue_stopped(dev))
+ iowrite16(TM2TX, ioaddr + MTPR);
lp->tx_insert_ptr = descptr->vndescp;
/* If no tx resource, stop */