diff options
-rw-r--r-- | include/linux/netdev_features.h | 7 | ||||
-rw-r--r-- | net/8021q/vlan_dev.c | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/netdev_features.h b/include/linux/netdev_features.h index 1005ebf17575..5a09a48f2658 100644 --- a/include/linux/netdev_features.h +++ b/include/linux/netdev_features.h | |||
@@ -163,4 +163,11 @@ enum { | |||
163 | /* changeable features with no special hardware requirements */ | 163 | /* changeable features with no special hardware requirements */ |
164 | #define NETIF_F_SOFT_FEATURES (NETIF_F_GSO | NETIF_F_GRO) | 164 | #define NETIF_F_SOFT_FEATURES (NETIF_F_GSO | NETIF_F_GRO) |
165 | 165 | ||
166 | #define NETIF_F_VLAN_FEATURES (NETIF_F_HW_VLAN_CTAG_FILTER | \ | ||
167 | NETIF_F_HW_VLAN_CTAG_RX | \ | ||
168 | NETIF_F_HW_VLAN_CTAG_TX | \ | ||
169 | NETIF_F_HW_VLAN_STAG_FILTER | \ | ||
170 | NETIF_F_HW_VLAN_STAG_RX | \ | ||
171 | NETIF_F_HW_VLAN_STAG_TX) | ||
172 | |||
166 | #endif /* _LINUX_NETDEV_FEATURES_H */ | 173 | #endif /* _LINUX_NETDEV_FEATURES_H */ |
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index a9591ff2b678..27bfe2f8e2de 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c | |||
@@ -578,6 +578,9 @@ static int vlan_dev_init(struct net_device *dev) | |||
578 | 578 | ||
579 | dev->features |= real_dev->vlan_features | NETIF_F_LLTX; | 579 | dev->features |= real_dev->vlan_features | NETIF_F_LLTX; |
580 | dev->gso_max_size = real_dev->gso_max_size; | 580 | dev->gso_max_size = real_dev->gso_max_size; |
581 | if (dev->features & NETIF_F_VLAN_FEATURES) | ||
582 | netdev_warn(real_dev, "VLAN features are set incorrectly. Q-in-Q configurations may not work correctly.\n"); | ||
583 | |||
581 | 584 | ||
582 | /* ipv6 shared card related stuff */ | 585 | /* ipv6 shared card related stuff */ |
583 | dev->dev_id = real_dev->dev_id; | 586 | dev->dev_id = real_dev->dev_id; |