aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/8021q/vlan_dev.c6
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}