diff options
author | Jesse Gross <jesse@nicira.com> | 2011-01-17 15:46:00 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-01-18 19:13:50 -0500 |
commit | 6ee400aafb60289b78fcde5ebccd8c4973fc53f4 (patch) | |
tree | d2cf34a95277a35836bbbb898a15d3dfa45e4368 /net | |
parent | f742aa8acb7e50a383f6d2b00b1c52e081970d38 (diff) |
net offloading: Do not mask out NETIF_F_HW_VLAN_TX for vlan.
In netif_skb_features() we return only the features that are valid for vlans
if we have a vlan packet. However, we should not mask out NETIF_F_HW_VLAN_TX
since it enables transmission of vlan tags and is obviously valid.
Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/core/dev.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 83507c265e48..4c58d11d3b68 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -2023,13 +2023,13 @@ int netif_skb_features(struct sk_buff *skb) | |||
2023 | return harmonize_features(skb, protocol, features); | 2023 | return harmonize_features(skb, protocol, features); |
2024 | } | 2024 | } |
2025 | 2025 | ||
2026 | features &= skb->dev->vlan_features; | 2026 | features &= (skb->dev->vlan_features | NETIF_F_HW_VLAN_TX); |
2027 | 2027 | ||
2028 | if (protocol != htons(ETH_P_8021Q)) { | 2028 | if (protocol != htons(ETH_P_8021Q)) { |
2029 | return harmonize_features(skb, protocol, features); | 2029 | return harmonize_features(skb, protocol, features); |
2030 | } else { | 2030 | } else { |
2031 | features &= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | | 2031 | features &= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | |
2032 | NETIF_F_GEN_CSUM; | 2032 | NETIF_F_GEN_CSUM | NETIF_F_HW_VLAN_TX; |
2033 | return harmonize_features(skb, protocol, features); | 2033 | return harmonize_features(skb, protocol, features); |
2034 | } | 2034 | } |
2035 | } | 2035 | } |