pci_set_power_state (cp->pdev, PCI_D3hot);
 }
 
+static const struct net_device_ops cp_netdev_ops = {
+       .ndo_open               = cp_open,
+       .ndo_stop               = cp_close,
+       .ndo_validate_addr      = eth_validate_addr,
+       .ndo_set_multicast_list = cp_set_rx_mode,
+       .ndo_get_stats          = cp_get_stats,
+       .ndo_do_ioctl           = cp_ioctl,
+       .ndo_tx_timeout         = cp_tx_timeout,
+#if CP_VLAN_TAG_USED
+       .ndo_vlan_rx_register   = cp_vlan_rx_register,
+#endif
+#ifdef BROKEN
+       .ndo_change_mtu         = cp_change_mtu,
+#endif
+#ifdef CONFIG_NET_POLL_CONTROLLER
+       .ndo_poll_controller    = cp_poll_controller,
+#endif
+};
+
 static int cp_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
 {
        struct net_device *dev;
                    cpu_to_le16(read_eeprom (regs, i + 7, addr_len));
        memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
 
-       dev->open = cp_open;
-       dev->stop = cp_close;
-       dev->set_multicast_list = cp_set_rx_mode;
+       dev->netdev_ops = &cp_netdev_ops;
        dev->hard_start_xmit = cp_start_xmit;
-       dev->get_stats = cp_get_stats;
-       dev->do_ioctl = cp_ioctl;
-#ifdef CONFIG_NET_POLL_CONTROLLER
-       dev->poll_controller = cp_poll_controller;
-#endif
        netif_napi_add(dev, &cp->napi, cp_rx_poll, 16);
-#ifdef BROKEN
-       dev->change_mtu = cp_change_mtu;
-#endif
        dev->ethtool_ops = &cp_ethtool_ops;
-       dev->tx_timeout = cp_tx_timeout;
        dev->watchdog_timeo = TX_TIMEOUT;
 
 #if CP_VLAN_TAG_USED
        dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
-       dev->vlan_rx_register = cp_vlan_rx_register;
 #endif
 
        if (pci_using_dac)
 
        return rc;
 }
 
+static const struct net_device_ops rtl8139_netdev_ops = {
+       .ndo_open               = rtl8139_open,
+       .ndo_stop               = rtl8139_close,
+       .ndo_get_stats          = rtl8139_get_stats,
+       .ndo_validate_addr      = eth_validate_addr,
+       .ndo_set_multicast_list = rtl8139_set_rx_mode,
+       .ndo_do_ioctl           = netdev_ioctl,
+       .ndo_tx_timeout         = rtl8139_tx_timeout,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+       .ndo_poll_controller    = rtl8139_poll_controller,
+#endif
+
+};
 
 static int __devinit rtl8139_init_one (struct pci_dev *pdev,
                                       const struct pci_device_id *ent)
        memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
 
        /* The Rtl8139-specific entries in the device structure. */
-       dev->open = rtl8139_open;
-       dev->hard_start_xmit = rtl8139_start_xmit;
-       netif_napi_add(dev, &tp->napi, rtl8139_poll, 64);
-       dev->stop = rtl8139_close;
-       dev->get_stats = rtl8139_get_stats;
-       dev->set_multicast_list = rtl8139_set_rx_mode;
-       dev->do_ioctl = netdev_ioctl;
+       dev->netdev_ops = &rtl8139_netdev_ops;
        dev->ethtool_ops = &rtl8139_ethtool_ops;
-       dev->tx_timeout = rtl8139_tx_timeout;
        dev->watchdog_timeo = TX_TIMEOUT;
-#ifdef CONFIG_NET_POLL_CONTROLLER
-       dev->poll_controller = rtl8139_poll_controller;
-#endif
+       dev->hard_start_xmit = rtl8139_start_xmit;
+       netif_napi_add(dev, &tp->napi, rtl8139_poll, 64);
 
        /* note: the hardware is not capable of sg/csum/highdma, however
         * through the use of skb_copy_and_csum_dev we enable these