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>
This commit is contained in:
parent
ce93718fb7
commit
8dcda22a5d
@ -2570,8 +2570,8 @@ static int xmit_one(struct sk_buff *skb, struct net_device *dev,
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sk_buff *xmit_list(struct sk_buff *first, struct net_device *dev,
|
struct sk_buff *dev_hard_start_xmit(struct sk_buff *first, struct net_device *dev,
|
||||||
struct netdev_queue *txq, int *ret)
|
struct netdev_queue *txq, int *ret)
|
||||||
{
|
{
|
||||||
struct sk_buff *skb = first;
|
struct sk_buff *skb = first;
|
||||||
int rc = NETDEV_TX_OK;
|
int rc = NETDEV_TX_OK;
|
||||||
@ -2673,17 +2673,6 @@ out_null:
|
|||||||
return 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)
|
static void qdisc_pkt_len_init(struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
const struct skb_shared_info *shinfo = skb_shinfo(skb);
|
const struct skb_shared_info *shinfo = skb_shinfo(skb);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user