static int ethtool_get_drvinfo(struct net_device *dev, void __user *useraddr)
 {
        struct ethtool_drvinfo info;
-       struct ethtool_ops *ops = dev->ethtool_ops;
+       const struct ethtool_ops *ops = dev->ethtool_ops;
 
        if (!ops->get_drvinfo)
                return -EOPNOTSUPP;
 static int ethtool_get_regs(struct net_device *dev, char __user *useraddr)
 {
        struct ethtool_regs regs;
-       struct ethtool_ops *ops = dev->ethtool_ops;
+       const struct ethtool_ops *ops = dev->ethtool_ops;
        void *regbuf;
        int reglen, ret;
 
 static int ethtool_get_eeprom(struct net_device *dev, void __user *useraddr)
 {
        struct ethtool_eeprom eeprom;
-       struct ethtool_ops *ops = dev->ethtool_ops;
+       const struct ethtool_ops *ops = dev->ethtool_ops;
        u8 *data;
        int ret;
 
 static int ethtool_set_eeprom(struct net_device *dev, void __user *useraddr)
 {
        struct ethtool_eeprom eeprom;
-       struct ethtool_ops *ops = dev->ethtool_ops;
+       const struct ethtool_ops *ops = dev->ethtool_ops;
        u8 *data;
        int ret;
 
 static int ethtool_self_test(struct net_device *dev, char __user *useraddr)
 {
        struct ethtool_test test;
-       struct ethtool_ops *ops = dev->ethtool_ops;
+       const struct ethtool_ops *ops = dev->ethtool_ops;
        u64 *data;
        int ret;
 
 static int ethtool_get_strings(struct net_device *dev, void __user *useraddr)
 {
        struct ethtool_gstrings gstrings;
-       struct ethtool_ops *ops = dev->ethtool_ops;
+       const struct ethtool_ops *ops = dev->ethtool_ops;
        u8 *data;
        int ret;
 
 static int ethtool_get_stats(struct net_device *dev, void __user *useraddr)
 {
        struct ethtool_stats stats;
-       struct ethtool_ops *ops = dev->ethtool_ops;
+       const struct ethtool_ops *ops = dev->ethtool_ops;
        u64 *data;
        int ret;