aboutsummaryrefslogtreecommitdiffstats
path: root/net/8021q/vlan_dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/8021q/vlan_dev.c')
-rw-r--r--net/8021q/vlan_dev.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index ad5e2fd1012c..e7e62570bdb8 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -551,6 +551,7 @@ static int vlan_dev_init(struct net_device *dev)
551 dev->features |= real_dev->vlan_features | NETIF_F_LLTX | 551 dev->features |= real_dev->vlan_features | NETIF_F_LLTX |
552 NETIF_F_GSO_SOFTWARE; 552 NETIF_F_GSO_SOFTWARE;
553 dev->gso_max_size = real_dev->gso_max_size; 553 dev->gso_max_size = real_dev->gso_max_size;
554 dev->gso_max_segs = real_dev->gso_max_segs;
554 if (dev->features & NETIF_F_VLAN_FEATURES) 555 if (dev->features & NETIF_F_VLAN_FEATURES)
555 netdev_warn(real_dev, "VLAN features are set incorrectly. Q-in-Q configurations may not work correctly.\n"); 556 netdev_warn(real_dev, "VLAN features are set incorrectly. Q-in-Q configurations may not work correctly.\n");
556 557
@@ -621,12 +622,12 @@ static netdev_features_t vlan_dev_fix_features(struct net_device *dev,
621 return features; 622 return features;
622} 623}
623 624
624static int vlan_ethtool_get_settings(struct net_device *dev, 625static int vlan_ethtool_get_link_ksettings(struct net_device *dev,
625 struct ethtool_cmd *cmd) 626 struct ethtool_link_ksettings *cmd)
626{ 627{
627 const struct vlan_dev_priv *vlan = vlan_dev_priv(dev); 628 const struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
628 629
629 return __ethtool_get_settings(vlan->real_dev, cmd); 630 return __ethtool_get_link_ksettings(vlan->real_dev, cmd);
630} 631}
631 632
632static void vlan_ethtool_get_drvinfo(struct net_device *dev, 633static void vlan_ethtool_get_drvinfo(struct net_device *dev,
@@ -741,7 +742,7 @@ static int vlan_dev_get_iflink(const struct net_device *dev)
741} 742}
742 743
743static const struct ethtool_ops vlan_ethtool_ops = { 744static const struct ethtool_ops vlan_ethtool_ops = {
744 .get_settings = vlan_ethtool_get_settings, 745 .get_link_ksettings = vlan_ethtool_get_link_ksettings,
745 .get_drvinfo = vlan_ethtool_get_drvinfo, 746 .get_drvinfo = vlan_ethtool_get_drvinfo,
746 .get_link = ethtool_op_get_link, 747 .get_link = ethtool_op_get_link,
747 .get_ts_info = vlan_ethtool_get_ts_info, 748 .get_ts_info = vlan_ethtool_get_ts_info,
@@ -799,6 +800,7 @@ void vlan_setup(struct net_device *dev)
799 ether_setup(dev); 800 ether_setup(dev);
800 801
801 dev->priv_flags |= IFF_802_1Q_VLAN | IFF_NO_QUEUE; 802 dev->priv_flags |= IFF_802_1Q_VLAN | IFF_NO_QUEUE;
803 dev->priv_flags |= IFF_UNICAST_FLT;
802 dev->priv_flags &= ~IFF_TX_SKB_SHARING; 804 dev->priv_flags &= ~IFF_TX_SKB_SHARING;
803 netif_keep_dst(dev); 805 netif_keep_dst(dev);
804 806