include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit...
[safe/jmp/linux-2.6] / arch / um / drivers / net_kern.c
index 6d2b100..f053726 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/platform_device.h>
 #include <linux/rtnetlink.h>
 #include <linux/skbuff.h>
+#include <linux/slab.h>
 #include <linux/spinlock.h>
 #include "init.h"
 #include "irq_kern.h"
@@ -245,7 +246,7 @@ static int uml_net_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
        dev_kfree_skb(skb);
 
-       return 0;
+       return NETDEV_TX_OK;
 }
 
 static void uml_net_set_multicast_list(struct net_device *dev)
@@ -285,7 +286,7 @@ static void uml_net_get_drvinfo(struct net_device *dev,
        strcpy(info->version, "42");
 }
 
-static struct ethtool_ops uml_net_ethtool_ops = {
+static const struct ethtool_ops uml_net_ethtool_ops = {
        .get_drvinfo    = uml_net_get_drvinfo,
        .get_link       = ethtool_op_get_link,
 };
@@ -360,7 +361,7 @@ static struct platform_driver uml_net_driver = {
 
 static void net_device_release(struct device *dev)
 {
-       struct uml_net *device = dev->driver_data;
+       struct uml_net *device = dev_get_drvdata(dev);
        struct net_device *netdev = device->dev;
        struct uml_net_private *lp = netdev_priv(netdev);
 
@@ -371,6 +372,18 @@ static void net_device_release(struct device *dev)
        free_netdev(netdev);
 }
 
+static const struct net_device_ops uml_netdev_ops = {
+       .ndo_open               = uml_net_open,
+       .ndo_stop               = uml_net_close,
+       .ndo_start_xmit         = uml_net_start_xmit,
+       .ndo_set_multicast_list = uml_net_set_multicast_list,
+       .ndo_tx_timeout         = uml_net_tx_timeout,
+       .ndo_set_mac_address    = uml_net_set_mac,
+       .ndo_change_mtu         = uml_net_change_mtu,
+       .ndo_set_mac_address    = eth_mac_addr,
+       .ndo_validate_addr      = eth_validate_addr,
+};
+
 /*
  * Ensures that platform_driver_register is called only once by
  * eth_configure.  Will be set in an initcall.
@@ -428,7 +441,7 @@ static void eth_configure(int n, void *init, char *mac,
        device->pdev.id = n;
        device->pdev.name = DRIVER_NAME;
        device->pdev.dev.release = net_device_release;
-       device->pdev.dev.driver_data = device;
+       dev_set_drvdata(&device->pdev.dev, device);
        if (platform_device_register(&device->pdev))
                goto out_free_netdev;
        SET_NETDEV_DEV(dev,&device->pdev.dev);
@@ -467,13 +480,7 @@ static void eth_configure(int n, void *init, char *mac,
 
        set_ether_mac(dev, device->mac);
        dev->mtu = transport->user->mtu;
-       dev->open = uml_net_open;
-       dev->hard_start_xmit = uml_net_start_xmit;
-       dev->stop = uml_net_close;
-       dev->set_multicast_list = uml_net_set_multicast_list;
-       dev->tx_timeout = uml_net_tx_timeout;
-       dev->set_mac_address = uml_net_set_mac;
-       dev->change_mtu = uml_net_change_mtu;
+       dev->netdev_ops = &uml_netdev_ops;
        dev->ethtool_ops = &uml_net_ethtool_ops;
        dev->watchdog_timeo = (HZ >> 1);
        dev->irq = UM_ETH_IRQ;
@@ -527,7 +534,7 @@ static int eth_parse(char *str, int *index_out, char **str_out,
                     char **error_out)
 {
        char *end;
-       int n, err = -EINVAL;;
+       int n, err = -EINVAL;
 
        n = simple_strtoul(str, &end, 0);
        if (end == str) {
@@ -751,7 +758,7 @@ static int uml_inetaddr_event(struct notifier_block *this, unsigned long event,
        void (*proc)(unsigned char *, unsigned char *, void *);
        unsigned char addr_buf[4], netmask_buf[4];
 
-       if (dev->open != uml_net_open)
+       if (dev->netdev_ops->ndo_open != uml_net_open)
                return NOTIFY_DONE;
 
        lp = netdev_priv(dev);