diff options
Diffstat (limited to 'net/8021q/vlan_dev.c')
| -rw-r--r-- | net/8021q/vlan_dev.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index 58f8010e1aef..f247f5bff88d 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c | |||
| @@ -528,7 +528,7 @@ static int vlan_dev_init(struct net_device *dev) | |||
| 528 | (1<<__LINK_STATE_DORMANT))) | | 528 | (1<<__LINK_STATE_DORMANT))) | |
| 529 | (1<<__LINK_STATE_PRESENT); | 529 | (1<<__LINK_STATE_PRESENT); |
| 530 | 530 | ||
| 531 | dev->hw_features = real_dev->vlan_features & NETIF_F_ALL_TX_OFFLOADS; | 531 | dev->hw_features = NETIF_F_ALL_TX_OFFLOADS; |
| 532 | dev->features |= real_dev->vlan_features | NETIF_F_LLTX; | 532 | dev->features |= real_dev->vlan_features | NETIF_F_LLTX; |
| 533 | dev->gso_max_size = real_dev->gso_max_size; | 533 | dev->gso_max_size = real_dev->gso_max_size; |
| 534 | 534 | ||
| @@ -587,9 +587,11 @@ static u32 vlan_dev_fix_features(struct net_device *dev, u32 features) | |||
| 587 | { | 587 | { |
| 588 | struct net_device *real_dev = vlan_dev_info(dev)->real_dev; | 588 | struct net_device *real_dev = vlan_dev_info(dev)->real_dev; |
| 589 | 589 | ||
| 590 | features &= (real_dev->features | NETIF_F_LLTX); | 590 | features &= real_dev->features; |
| 591 | features &= real_dev->vlan_features; | ||
| 591 | if (dev_ethtool_get_rx_csum(real_dev)) | 592 | if (dev_ethtool_get_rx_csum(real_dev)) |
| 592 | features |= NETIF_F_RXCSUM; | 593 | features |= NETIF_F_RXCSUM; |
| 594 | features |= NETIF_F_LLTX; | ||
| 593 | 595 | ||
| 594 | return features; | 596 | return features; |
| 595 | } | 597 | } |
