summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ipoe/ipoe.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/ipoe/ipoe.c b/drivers/ipoe/ipoe.c
index 28a70ba1..36bee4fc 100644
--- a/drivers/ipoe/ipoe.c
+++ b/drivers/ipoe/ipoe.c
@@ -164,6 +164,10 @@ static struct genl_multicast_group ipoe_nl_mcg;
#endif
#endif
+#ifndef NETIF_F_HW_VLAN_FILTER
+#define NETIF_F_HW_VLAN_FILTER NETIF_F_HW_VLAN_CTAG_FILTER
+#endif
+
static inline int hash_addr(__be32 addr)
{
#ifdef __LITTLE_ENDIAN
@@ -1156,7 +1160,7 @@ static void ipoe_netdev_setup(struct net_device *dev)
dev->iflink = 0;
dev->addr_len = ETH_ALEN;
dev->features |= NETIF_F_NETNS_LOCAL;
- dev->features &= ~NETIF_F_HW_VLAN_CTAG_FILTER;
+ dev->features &= ~NETIF_F_HW_VLAN_FILTER;
dev->header_ops = &ipoe_hard_header_ops;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)
dev->priv_flags &= ~IFF_XMIT_DST_RELEASE;
@@ -1215,7 +1219,7 @@ static int ipoe_create(__be32 peer_addr, __be32 addr, const char *link_ifname, c
#endif
if (link_dev) {
- dev->features = link_dev->features;
+ dev->features = link_dev->features & ~NETIF_F_HW_VLAN_FILTER;
memcpy(dev->dev_addr, link_dev->dev_addr, ETH_ALEN);
memcpy(dev->broadcast, link_dev->broadcast, ETH_ALEN);
}
@@ -1511,7 +1515,7 @@ static int ipoe_nl_cmd_modify(struct sk_buff *skb, struct genl_info *info)
ses->link_dev = link_dev;
if (link_dev) {
- ses->dev->features = link_dev->features;
+ ses->dev->features = link_dev->features & ~NETIF_F_HW_VLAN_FILTER;
memcpy(dev->dev_addr, link_dev->dev_addr, ETH_ALEN);
memcpy(dev->broadcast, link_dev->broadcast, ETH_ALEN);
}