diff options
author | David S. Miller <davem@davemloft.net> | 2014-09-01 18:06:40 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-09-01 20:39:56 -0400 |
commit | 8dcda22a5d0abaf347b21b057655f3809b91639d (patch) | |
tree | 595d3af7a5ffab41fbf2b77dbbb3c3787f5700bb /net/core | |
parent | ce93718fb7cdbc064c3000ff59e4d3200bdfa744 (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.c | 15 |
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 | ||
2573 | static struct sk_buff *xmit_list(struct sk_buff *first, struct net_device *dev, | 2573 | struct 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 | ||
2676 | struct 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 | |||
2687 | static void qdisc_pkt_len_init(struct sk_buff *skb) | 2676 | static 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); |