tg3: tg3.h cleanups
[safe/jmp/linux-2.6] / drivers / net / veth.c
index 31cd817..852d0e7 100644 (file)
@@ -8,7 +8,6 @@
  *
  */
 
-#include <linux/list.h>
 #include <linux/netdevice.h>
 #include <linux/ethtool.h>
 #include <linux/etherdevice.h>
@@ -30,14 +29,10 @@ struct veth_net_stats {
 
 struct veth_priv {
        struct net_device *peer;
-       struct net_device *dev;
-       struct list_head list;
        struct veth_net_stats *stats;
        unsigned ip_summed;
 };
 
-static LIST_HEAD(veth_list);
-
 /*
  * ethtool interface
  */
@@ -267,16 +262,20 @@ static void veth_dev_free(struct net_device *dev)
        free_netdev(dev);
 }
 
+static const struct net_device_ops veth_netdev_ops = {
+       .ndo_init       = veth_dev_init,
+       .ndo_open       = veth_open,
+       .ndo_start_xmit = veth_xmit,
+       .ndo_get_stats  = veth_get_stats,
+};
+
 static void veth_setup(struct net_device *dev)
 {
        ether_setup(dev);
 
-       dev->hard_start_xmit = veth_xmit;
-       dev->get_stats = veth_get_stats;
-       dev->open = veth_open;
+       dev->netdev_ops = &veth_netdev_ops;
        dev->ethtool_ops = &veth_ethtool_ops;
        dev->features |= NETIF_F_LLTX;
-       dev->init = veth_dev_init;
        dev->destructor = veth_dev_free;
 }
 
@@ -302,7 +301,7 @@ static int veth_device_event(struct notifier_block *unused,
 {
        struct net_device *dev = ptr;
 
-       if (dev->open != veth_open)
+       if (dev->netdev_ops->ndo_open != veth_open)
                goto out;
 
        switch (event) {
@@ -420,14 +419,10 @@ static int veth_newlink(struct net_device *dev,
         */
 
        priv = netdev_priv(dev);
-       priv->dev = dev;
        priv->peer = peer;
-       list_add(&priv->list, &veth_list);
 
        priv = netdev_priv(peer);
-       priv->dev = peer;
        priv->peer = dev;
-       INIT_LIST_HEAD(&priv->list);
        return 0;
 
 err_register_dev:
@@ -449,13 +444,6 @@ static void veth_dellink(struct net_device *dev)
        priv = netdev_priv(dev);
        peer = priv->peer;
 
-       if (!list_empty(&priv->list))
-               list_del(&priv->list);
-
-       priv = netdev_priv(peer);
-       if (!list_empty(&priv->list))
-               list_del(&priv->list);
-
        unregister_netdevice(dev);
        unregister_netdevice(peer);
 }