net: Have xmit_list() signal more==true when appropriate.

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller 2014-08-29 21:57:30 -07:00
parent fa2dbdc253
commit 95f6b3dda2

View file

@ -2600,7 +2600,7 @@ netdev_features_t netif_skb_features(struct sk_buff *skb)
EXPORT_SYMBOL(netif_skb_features);
static int xmit_one(struct sk_buff *skb, struct net_device *dev,
struct netdev_queue *txq)
struct netdev_queue *txq, bool more)
{
unsigned int len;
int rc;
@ -2610,7 +2610,7 @@ static int xmit_one(struct sk_buff *skb, struct net_device *dev,
len = skb->len;
trace_net_dev_start_xmit(skb, dev);
rc = netdev_start_xmit(skb, dev, txq, false);
rc = netdev_start_xmit(skb, dev, txq, more);
trace_net_dev_xmit(skb, rc, dev, len);
return rc;
@ -2626,7 +2626,7 @@ static struct sk_buff *xmit_list(struct sk_buff *first, struct net_device *dev,
struct sk_buff *next = skb->next;
skb->next = NULL;
rc = xmit_one(skb, dev, txq);
rc = xmit_one(skb, dev, txq, next != NULL);
if (unlikely(!dev_xmit_complete(rc))) {
skb->next = next;
goto out;
@ -2705,7 +2705,7 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev,
}
}
return xmit_one(skb, dev, txq);
return xmit_one(skb, dev, txq, false);
}
gso: