return 0;
 }
 
+static const struct net_device_ops e100_netdev_ops = {
+       .ndo_open               = e100_open,
+       .ndo_stop               = e100_close,
+       .ndo_validate_addr      = eth_validate_addr,
+       .ndo_set_multicast_list = e100_set_multicast_list,
+       .ndo_set_mac_address    = e100_set_mac_address,
+       .ndo_change_mtu         = e100_change_mtu,
+       .ndo_do_ioctl           = e100_do_ioctl,
+       .ndo_tx_timeout         = e100_tx_timeout,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+       .ndo_poll_controller    = e100_netpoll,
+#endif
+};
+
 static int __devinit e100_probe(struct pci_dev *pdev,
        const struct pci_device_id *ent)
 {
                return -ENOMEM;
        }
 
-       netdev->open = e100_open;
-       netdev->stop = e100_close;
+       netdev->netdev_ops = &e100_netdev_ops;
        netdev->hard_start_xmit = e100_xmit_frame;
-       netdev->set_multicast_list = e100_set_multicast_list;
-       netdev->set_mac_address = e100_set_mac_address;
-       netdev->change_mtu = e100_change_mtu;
-       netdev->do_ioctl = e100_do_ioctl;
        SET_ETHTOOL_OPS(netdev, &e100_ethtool_ops);
-       netdev->tx_timeout = e100_tx_timeout;
        netdev->watchdog_timeo = E100_WATCHDOG_PERIOD;
-#ifdef CONFIG_NET_POLL_CONTROLLER
-       netdev->poll_controller = e100_netpoll;
-#endif
        strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1);
 
        nic = netdev_priv(netdev);
        struct nic *nic = netdev_priv(netdev);
 
        /* Similar to calling e100_down(), but avoids adapter I/O. */
-       netdev->stop(netdev);
+       e100_close(netdev);
 
        /* Detach; put netif into a state similar to hotplug unplug. */
        napi_enable(&nic->napi);