fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / net / dummy.c
index 37068c8..60673bc 100644 (file)
@@ -11,7 +11,7 @@
        One solution is to set up a dummy link using PPP/SLIP/PLIP,
        but this seems (to me) too much overhead for too little gain.
        This driver provides a small alternative. Thus you can do
-       
+
        [when not running slip]
                ifconfig dummy slip.addr.ess.here up
        [to go to slip]
@@ -28,7 +28,6 @@
                        Alan Cox, 30th May 1994
 */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
@@ -45,9 +44,9 @@ static int dummy_set_address(struct net_device *dev, void *p)
 {
        struct sockaddr *sa = p;
 
-       if (!is_valid_ether_addr(sa->sa_data)) 
+       if (!is_valid_ether_addr(sa->sa_data))
                return -EADDRNOTAVAIL;
-               
+
        memcpy(dev->dev_addr, sa->sa_data, ETH_ALEN);
        return 0;
 }
@@ -57,13 +56,6 @@ static void set_multicast_list(struct net_device *dev)
 {
 }
 
-#ifdef CONFIG_NET_FASTROUTE
-static int dummy_accept_fastpath(struct net_device *dev, struct dst_entry *dst)
-{
-       return -1;
-}
-#endif
-
 static void __init dummy_setup(struct net_device *dev)
 {
        /* Initialize the device structure. */
@@ -71,13 +63,11 @@ static void __init dummy_setup(struct net_device *dev)
        dev->hard_start_xmit = dummy_xmit;
        dev->set_multicast_list = set_multicast_list;
        dev->set_mac_address = dummy_set_address;
-#ifdef CONFIG_NET_FASTROUTE
-       dev->accept_fastpath = dummy_accept_fastpath;
-#endif
 
        /* Fill in device structure with ethernet-generic values. */
        ether_setup(dev);
        dev->tx_queue_len = 0;
+       dev->change_mtu = NULL;
        dev->flags |= IFF_NOARP;
        dev->flags &= ~IFF_MULTICAST;
        SET_MODULE_OWNER(dev);
@@ -86,7 +76,7 @@ static void __init dummy_setup(struct net_device *dev)
 
 static int dummy_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       struct net_device_stats *stats = dev->priv;
+       struct net_device_stats *stats = netdev_priv(dev);
 
        stats->tx_packets++;
        stats->tx_bytes+=skb->len;
@@ -97,7 +87,7 @@ static int dummy_xmit(struct sk_buff *skb, struct net_device *dev)
 
 static struct net_device_stats *dummy_get_stats(struct net_device *dev)
 {
-       return dev->priv;
+       return netdev_priv(dev);
 }
 
 static struct net_device **dummies;
@@ -121,7 +111,7 @@ static int __init dummy_init_one(int index)
                free_netdev(dev_dummy);
                dev_dummy = NULL;
        } else {
-               dummies[index] = dev_dummy; 
+               dummies[index] = dev_dummy;
        }
 
        return err;
@@ -131,29 +121,30 @@ static void dummy_free_one(int index)
 {
        unregister_netdev(dummies[index]);
        free_netdev(dummies[index]);
-} 
+}
 
 static int __init dummy_init_module(void)
-{ 
+{
        int i, err = 0;
-       dummies = kmalloc(numdummies * sizeof(void *), GFP_KERNEL); 
+       dummies = kmalloc(numdummies * sizeof(void *), GFP_KERNEL);
        if (!dummies)
-               return -ENOMEM; 
+               return -ENOMEM;
        for (i = 0; i < numdummies && !err; i++)
-               err = dummy_init_one(i); 
-       if (err) { 
+               err = dummy_init_one(i);
+       if (err) {
+               i--;
                while (--i >= 0)
                        dummy_free_one(i);
        }
        return err;
-} 
+}
 
 static void __exit dummy_cleanup_module(void)
 {
        int i;
-       for (i = 0; i < numdummies; i++) 
-               dummy_free_one(i); 
-       kfree(dummies); 
+       for (i = 0; i < numdummies; i++)
+               dummy_free_one(i);
+       kfree(dummies);
 }
 
 module_init(dummy_init_module);