(1<<__LINK_STATE_DORMANT))) |
                      (1<<__LINK_STATE_PRESENT);
 
-       dev->hw_features = real_dev->vlan_features & NETIF_F_ALL_TX_OFFLOADS;
+       dev->hw_features = NETIF_F_ALL_TX_OFFLOADS;
        dev->features |= real_dev->vlan_features | NETIF_F_LLTX;
        dev->gso_max_size = real_dev->gso_max_size;
 
 {
        struct net_device *real_dev = vlan_dev_info(dev)->real_dev;
 
-       features &= (real_dev->features | NETIF_F_LLTX);
+       features &= real_dev->features;
+       features &= real_dev->vlan_features;
        if (dev_ethtool_get_rx_csum(real_dev))
                features |= NETIF_F_RXCSUM;
+       features |= NETIF_F_LLTX;
 
        return features;
 }