.cache_update   = eth_header_cache_update,
 };
 
-static int ipvlan_ethtool_get_settings(struct net_device *dev,
-                                      struct ethtool_cmd *cmd)
+static int ipvlan_ethtool_get_link_ksettings(struct net_device *dev,
+                                            struct ethtool_link_ksettings *cmd)
 {
        const struct ipvl_dev *ipvlan = netdev_priv(dev);
 
-       return __ethtool_get_settings(ipvlan->phy_dev, cmd);
+       return __ethtool_get_link_ksettings(ipvlan->phy_dev, cmd);
 }
 
 static void ipvlan_ethtool_get_drvinfo(struct net_device *dev,
 
 static const struct ethtool_ops ipvlan_ethtool_ops = {
        .get_link       = ethtool_op_get_link,
-       .get_settings   = ipvlan_ethtool_get_settings,
+       .get_link_ksettings     = ipvlan_ethtool_get_link_ksettings,
        .get_drvinfo    = ipvlan_ethtool_get_drvinfo,
        .get_msglevel   = ipvlan_ethtool_get_msglevel,
        .set_msglevel   = ipvlan_ethtool_set_msglevel,