diff options
Diffstat (limited to 'net/8021q/vlan_dev.c')
-rw-r--r-- | net/8021q/vlan_dev.c | 10 |
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 | ||
624 | static int vlan_ethtool_get_settings(struct net_device *dev, | 625 | static 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 | ||
632 | static void vlan_ethtool_get_drvinfo(struct net_device *dev, | 633 | static 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 | ||
743 | static const struct ethtool_ops vlan_ethtool_ops = { | 744 | static 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 | ||