mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
net offloading: Pass features into netif_needs_gso().
Now that there is a single function that can compute the device features relevant to a packet, we don't want to run it for each offload. This converts netif_needs_gso() to take the features of the device, rather than computing them itself. Signed-off-by: Jesse Gross <jesse@nicira.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
f01a5236bd
commit
fc741216db
+6
-2
@@ -2086,6 +2086,8 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev,
|
||||
int rc = NETDEV_TX_OK;
|
||||
|
||||
if (likely(!skb->next)) {
|
||||
int features;
|
||||
|
||||
/*
|
||||
* If device doesnt need skb->dst, release it right now while
|
||||
* its hot in this cpu cache
|
||||
@@ -2098,8 +2100,10 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev,
|
||||
|
||||
skb_orphan_try(skb);
|
||||
|
||||
features = netif_skb_features(skb);
|
||||
|
||||
if (vlan_tx_tag_present(skb) &&
|
||||
!(dev->features & NETIF_F_HW_VLAN_TX)) {
|
||||
!(features & NETIF_F_HW_VLAN_TX)) {
|
||||
skb = __vlan_put_tag(skb, vlan_tx_tag_get(skb));
|
||||
if (unlikely(!skb))
|
||||
goto out;
|
||||
@@ -2107,7 +2111,7 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev,
|
||||
skb->vlan_tci = 0;
|
||||
}
|
||||
|
||||
if (netif_needs_gso(dev, skb)) {
|
||||
if (netif_needs_gso(skb, features)) {
|
||||
if (unlikely(dev_gso_segment(skb)))
|
||||
goto out_kfree_skb;
|
||||
if (skb->next)
|
||||
|
||||
Reference in New Issue
Block a user