aboutsummaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-09-01 15:06:40 -0700
committerDavid S. Miller <davem@davemloft.net>2014-09-01 17:39:56 -0700
commit8dcda22a5d0abaf347b21b057655f3809b91639d (patch)
tree595d3af7a5ffab41fbf2b77dbbb3c3787f5700bb /net/core
parentnet: Don't keep around original SKB when we software segment GSO frames. (diff)
downloadlinux-dev-8dcda22a5d0abaf347b21b057655f3809b91639d.tar.xz
linux-dev-8dcda22a5d0abaf347b21b057655f3809b91639d.zip
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,
return rc;
}
-static struct sk_buff *xmit_list(struct sk_buff *first, struct net_device *dev,
- struct netdev_queue *txq, int *ret)
+struct sk_buff *dev_hard_start_xmit(struct sk_buff *first, struct net_device *dev,
+ struct netdev_queue *txq, int *ret)
{
struct sk_buff *skb = first;
int rc = NETDEV_TX_OK;
@@ -2673,17 +2673,6 @@ out_null:
return NULL;
}
-struct sk_buff *dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev,
- struct netdev_queue *txq, int *ret)
-{
- if (likely(!skb->next)) {
- *ret = xmit_one(skb, dev, txq, false);
- return skb;
- }
-
- return xmit_list(skb, dev, txq, ret);
-}
-
static void qdisc_pkt_len_init(struct sk_buff *skb)
{
const struct skb_shared_info *shinfo = skb_shinfo(skb);