diff options
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index dcc673d0674c..52cd1d7f004a 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -2213,9 +2213,6 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, | |||
2213 | if (dev->priv_flags & IFF_XMIT_DST_RELEASE) | 2213 | if (dev->priv_flags & IFF_XMIT_DST_RELEASE) |
2214 | skb_dst_drop(skb); | 2214 | skb_dst_drop(skb); |
2215 | 2215 | ||
2216 | if (!list_empty(&ptype_all)) | ||
2217 | dev_queue_xmit_nit(skb, dev); | ||
2218 | |||
2219 | features = netif_skb_features(skb); | 2216 | features = netif_skb_features(skb); |
2220 | 2217 | ||
2221 | if (vlan_tx_tag_present(skb) && | 2218 | if (vlan_tx_tag_present(skb) && |
@@ -2250,6 +2247,9 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, | |||
2250 | } | 2247 | } |
2251 | } | 2248 | } |
2252 | 2249 | ||
2250 | if (!list_empty(&ptype_all)) | ||
2251 | dev_queue_xmit_nit(skb, dev); | ||
2252 | |||
2253 | skb_len = skb->len; | 2253 | skb_len = skb->len; |
2254 | rc = ops->ndo_start_xmit(skb, dev); | 2254 | rc = ops->ndo_start_xmit(skb, dev); |
2255 | trace_net_dev_xmit(skb, rc, dev, skb_len); | 2255 | trace_net_dev_xmit(skb, rc, dev, skb_len); |
@@ -2272,6 +2272,9 @@ gso: | |||
2272 | if (dev->priv_flags & IFF_XMIT_DST_RELEASE) | 2272 | if (dev->priv_flags & IFF_XMIT_DST_RELEASE) |
2273 | skb_dst_drop(nskb); | 2273 | skb_dst_drop(nskb); |
2274 | 2274 | ||
2275 | if (!list_empty(&ptype_all)) | ||
2276 | dev_queue_xmit_nit(nskb, dev); | ||
2277 | |||
2275 | skb_len = nskb->len; | 2278 | skb_len = nskb->len; |
2276 | rc = ops->ndo_start_xmit(nskb, dev); | 2279 | rc = ops->ndo_start_xmit(nskb, dev); |
2277 | trace_net_dev_xmit(nskb, rc, dev, skb_len); | 2280 | trace_net_dev_xmit(nskb, rc, dev, skb_len); |