|
@@ -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:
|