aboutsummaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-09-01 18:06:40 -0400
committerDavid S. Miller <davem@davemloft.net>2014-09-01 20:39:56 -0400
commit8dcda22a5d0abaf347b21b057655f3809b91639d (patch)
tree595d3af7a5ffab41fbf2b77dbbb3c3787f5700bb /net/core
parentce93718fb7cdbc064c3000ff59e4d3200bdfa744 (diff)
net: xmit_list() becomes dev_hard_start_xmit().
Now fundamentally we can process lists of SKBs as cheaply as single packets. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r--net/core/dev.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index c89da4f306b1..6857d57aa294 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2570,8 +2570,8 @@ static int xmit_one(struct sk_buff *skb, struct net_device *dev,
2570 return rc; 2570 return rc;
2571} 2571}
2572 2572
2573static struct sk_buff *xmit_list(struct sk_buff *first, struct net_device *dev, 2573struct sk_buff *dev_hard_start_xmit(struct sk_buff *first, struct net_device *dev,
2574 struct netdev_queue *txq, int *ret) 2574 struct netdev_queue *txq, int *ret)
2575{ 2575{
2576 struct sk_buff *skb = first; 2576 struct sk_buff *skb = first;
2577 int rc = NETDEV_TX_OK; 2577 int rc = NETDEV_TX_OK;
@@ -2673,17 +2673,6 @@ out_null:
2673 return NULL; 2673 return NULL;
2674} 2674}
2675 2675
2676struct sk_buff *dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev,
2677 struct netdev_queue *txq, int *ret)
2678{
2679 if (likely(!skb->next)) {
2680 *ret = xmit_one(skb, dev, txq, false);
2681 return skb;
2682 }
2683
2684 return xmit_list(skb, dev, txq, ret);
2685}
2686
2687static void qdisc_pkt_len_init(struct sk_buff *skb) 2676static void qdisc_pkt_len_init(struct sk_buff *skb)
2688{ 2677{
2689 const struct skb_shared_info *shinfo = skb_shinfo(skb); 2678 const struct skb_shared_info *shinfo = skb_shinfo(skb);