}
 }
 
+static const struct net_device_ops ixgb_netdev_ops = {
+       .ndo_open               = ixgb_open,
+       .ndo_stop               = ixgb_close,
+       .ndo_get_stats          = ixgb_get_stats,
+       .ndo_set_multicast_list = ixgb_set_multi,
+       .ndo_validate_addr      = eth_validate_addr,
+       .ndo_set_mac_address    = ixgb_set_mac,
+       .ndo_change_mtu         = ixgb_change_mtu,
+       .ndo_tx_timeout         = ixgb_tx_timeout,
+       .ndo_vlan_rx_register   = ixgb_vlan_rx_register,
+       .ndo_vlan_rx_add_vid    = ixgb_vlan_rx_add_vid,
+       .ndo_vlan_rx_kill_vid   = ixgb_vlan_rx_kill_vid,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+       .ndo_poll_controller    = ixgb_netpoll,
+#endif
+};
+
 /**
  * ixgb_probe - Device Initialization Routine
  * @pdev: PCI device information struct
                }
        }
 
-       netdev->open = &ixgb_open;
-       netdev->stop = &ixgb_close;
+       netdev->netdev_ops = &ixgb_netdev_ops;
        netdev->hard_start_xmit = &ixgb_xmit_frame;
-       netdev->get_stats = &ixgb_get_stats;
-       netdev->set_multicast_list = &ixgb_set_multi;
-       netdev->set_mac_address = &ixgb_set_mac;
-       netdev->change_mtu = &ixgb_change_mtu;
        ixgb_set_ethtool_ops(netdev);
-       netdev->tx_timeout = &ixgb_tx_timeout;
        netdev->watchdog_timeo = 5 * HZ;
        netif_napi_add(netdev, &adapter->napi, ixgb_clean, 64);
-       netdev->vlan_rx_register = ixgb_vlan_rx_register;
-       netdev->vlan_rx_add_vid = ixgb_vlan_rx_add_vid;
-       netdev->vlan_rx_kill_vid = ixgb_vlan_rx_kill_vid;
-#ifdef CONFIG_NET_POLL_CONTROLLER
-       netdev->poll_controller = ixgb_netpoll;
-#endif
 
        strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1);
 
 
        return hw->mac.ops.setup_link_speed(hw, autoneg, true, true);
 }
 
+static const struct net_device_ops ixgbe_netdev_ops = {
+       .ndo_open               = ixgbe_open,
+       .ndo_stop               = ixgbe_close,
+       .ndo_get_stats          = ixgbe_get_stats,
+       .ndo_set_multicast_list = ixgbe_set_rx_mode,
+       .ndo_validate_addr      = eth_validate_addr,
+       .ndo_set_mac_address    = ixgbe_set_mac,
+       .ndo_change_mtu         = ixgbe_change_mtu,
+       .ndo_tx_timeout         = ixgbe_tx_timeout,
+       .ndo_vlan_rx_register   = ixgbe_vlan_rx_register,
+       .ndo_vlan_rx_add_vid    = ixgbe_vlan_rx_add_vid,
+       .ndo_vlan_rx_kill_vid   = ixgbe_vlan_rx_kill_vid,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+       .ndo_poll_controller    = ixgbe_netpoll,
+#endif
+};
+
 /**
  * ixgbe_probe - Device Initialization Routine
  * @pdev: PCI device information struct
                        continue;
        }
 
-       netdev->open = &ixgbe_open;
-       netdev->stop = &ixgbe_close;
+       netdev->netdev_ops = &ixgbe_netdev_ops;
        netdev->hard_start_xmit = &ixgbe_xmit_frame;
-       netdev->get_stats = &ixgbe_get_stats;
-       netdev->set_rx_mode = &ixgbe_set_rx_mode;
-       netdev->set_multicast_list = &ixgbe_set_rx_mode;
-       netdev->set_mac_address = &ixgbe_set_mac;
-       netdev->change_mtu = &ixgbe_change_mtu;
        ixgbe_set_ethtool_ops(netdev);
-       netdev->tx_timeout = &ixgbe_tx_timeout;
        netdev->watchdog_timeo = 5 * HZ;
-       netdev->vlan_rx_register = ixgbe_vlan_rx_register;
-       netdev->vlan_rx_add_vid = ixgbe_vlan_rx_add_vid;
-       netdev->vlan_rx_kill_vid = ixgbe_vlan_rx_kill_vid;
-#ifdef CONFIG_NET_POLL_CONTROLLER
-       netdev->poll_controller = ixgbe_netpoll;
-#endif
        strcpy(netdev->name, pci_name(pdev));
 
        adapter->bd_number = cards_found;