]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/net/e1000/e1000_main.c
e1000: convert to net_device_ops
[mv-sheeva.git] / drivers / net / e1000 / e1000_main.c
index 07b38fbe4e03062697bb3f887d9354314009e493..debbba390d40f668078c7d6b63c0e2280b6b21eb 100644 (file)
@@ -888,6 +888,25 @@ static int e1000_is_need_ioport(struct pci_dev *pdev)
        }
 }
 
+static const struct net_device_ops e1000_netdev_ops = {
+       .ndo_open               = e1000_open,
+       .ndo_stop               = e1000_close,
+       .ndo_get_stats          = e1000_get_stats,
+       .ndo_set_rx_mode        = e1000_set_rx_mode,
+       .ndo_set_mac_address    = e1000_set_mac,
+       .ndo_tx_timeout         = e1000_tx_timeout,
+       .ndo_change_mtu         = e1000_change_mtu,
+       .ndo_do_ioctl           = e1000_ioctl,
+       .ndo_validate_addr      = eth_validate_addr,
+
+       .ndo_vlan_rx_register   = e1000_vlan_rx_register,
+       .ndo_vlan_rx_add_vid    = e1000_vlan_rx_add_vid,
+       .ndo_vlan_rx_kill_vid   = e1000_vlan_rx_kill_vid,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+       .ndo_poll_controller    = e1000_netpoll,
+#endif
+};
+
 /**
  * e1000_probe - Device Initialization Routine
  * @pdev: PCI device information struct
@@ -981,24 +1000,12 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
                }
        }
 
-       netdev->open = &e1000_open;
-       netdev->stop = &e1000_close;
+       netdev->netdev_ops = &e1000_netdev_ops;
        netdev->hard_start_xmit = &e1000_xmit_frame;
-       netdev->get_stats = &e1000_get_stats;
-       netdev->set_rx_mode = &e1000_set_rx_mode;
-       netdev->set_mac_address = &e1000_set_mac;
-       netdev->change_mtu = &e1000_change_mtu;
-       netdev->do_ioctl = &e1000_ioctl;
        e1000_set_ethtool_ops(netdev);
-       netdev->tx_timeout = &e1000_tx_timeout;
        netdev->watchdog_timeo = 5 * HZ;
        netif_napi_add(netdev, &adapter->napi, e1000_clean, 64);
-       netdev->vlan_rx_register = e1000_vlan_rx_register;
-       netdev->vlan_rx_add_vid = e1000_vlan_rx_add_vid;
-       netdev->vlan_rx_kill_vid = e1000_vlan_rx_kill_vid;
-#ifdef CONFIG_NET_POLL_CONTROLLER
-       netdev->poll_controller = e1000_netpoll;
-#endif
+
        strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1);
 
        adapter->bd_number = cards_found;
@@ -1175,6 +1182,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
 
        /* initialize the wol settings based on the eeprom settings */
        adapter->wol = adapter->eeprom_wol;
+       device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
 
        /* print bus type/speed/width info */
        DPRINTK(PROBE, INFO, "(PCI%s:%s:%s) ",
@@ -3786,8 +3794,7 @@ static int e1000_clean(struct napi_struct *napi, int budget)
        struct net_device *poll_dev = adapter->netdev;
        int tx_cleaned = 0, work_done = 0;
 
-       /* Must NOT use netdev_priv macro here. */
-       adapter = poll_dev->priv;
+       adapter = netdev_priv(poll_dev);
 
        /* e1000_clean is called per-cpu.  This lock protects
         * tx_ring[0] from being cleaned by multiple cpus
@@ -4099,8 +4106,6 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter,
                        netif_receive_skb(skb);
                }
 
-               netdev->last_rx = jiffies;
-
 next_desc:
                rx_desc->status = 0;
 
@@ -4784,7 +4789,7 @@ static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev,
                                                pci_channel_state_t state)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct e1000_adapter *adapter = netdev->priv;
+       struct e1000_adapter *adapter = netdev_priv(netdev);
 
        netif_device_detach(netdev);
 
@@ -4806,7 +4811,7 @@ static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev,
 static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct e1000_adapter *adapter = netdev->priv;
+       struct e1000_adapter *adapter = netdev_priv(netdev);
        struct e1000_hw *hw = &adapter->hw;
        int err;
 
@@ -4840,7 +4845,7 @@ static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev)
 static void e1000_io_resume(struct pci_dev *pdev)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct e1000_adapter *adapter = netdev->priv;
+       struct e1000_adapter *adapter = netdev_priv(netdev);
        struct e1000_hw *hw = &adapter->hw;
 
        e1000_init_manageability(adapter);