]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/staging/hv/netvsc_drv.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit...
[net-next-2.6.git] / drivers / staging / hv / netvsc_drv.c
index 0d7459e2d0360b8996b104e1385df56bd9fd8150..2ccb6b93fe473928dbfaa1caf8e06d09ffea8068 100644 (file)
 #include <linux/etherdevice.h>
 #include <linux/skbuff.h>
 #include <linux/in.h>
+#include <linux/slab.h>
 #include <net/arp.h>
 #include <net/route.h>
 #include <net/sock.h>
 #include <net/pkt_sched.h>
 #include "osd.h"
 #include "logging.h"
+#include "VersionInfo.h"
 #include "vmbus.h"
 #include "NetVscApi.h"
 
-MODULE_LICENSE("GPL");
-
 struct net_device_context {
        /* point back to our device context */
-       struct device_context *device_ctx;
+       struct vm_device *device_ctx;
        struct net_device_stats stats;
 };
 
@@ -72,11 +72,6 @@ static void netvsc_set_multicast_list(struct net_device *net)
 static int netvsc_open(struct net_device *net)
 {
        struct net_device_context *net_device_ctx = netdev_priv(net);
-       struct driver_context *driver_ctx =
-           driver_to_driver_context(net_device_ctx->device_ctx->device.driver);
-       struct netvsc_driver_context *net_drv_ctx =
-               (struct netvsc_driver_context *)driver_ctx;
-       struct netvsc_driver *net_drv_obj = &net_drv_ctx->drv_obj;
        struct hv_device *device_obj = &net_device_ctx->device_ctx->device_obj;
        int ret = 0;
 
@@ -87,7 +82,7 @@ static int netvsc_open(struct net_device *net)
                       sizeof(struct net_device_stats));
 
                /* Open up the device */
-               ret = net_drv_obj->OnOpen(device_obj);
+               ret = RndisFilterOnOpen(device_obj);
                if (ret != 0) {
                        DPRINT_ERR(NETVSC_DRV,
                                   "unable to open device (ret %d).", ret);
@@ -106,11 +101,6 @@ static int netvsc_open(struct net_device *net)
 static int netvsc_close(struct net_device *net)
 {
        struct net_device_context *net_device_ctx = netdev_priv(net);
-       struct driver_context *driver_ctx =
-           driver_to_driver_context(net_device_ctx->device_ctx->device.driver);
-       struct netvsc_driver_context *net_drv_ctx =
-               (struct netvsc_driver_context *)driver_ctx;
-       struct netvsc_driver *net_drv_obj = &net_drv_ctx->drv_obj;
        struct hv_device *device_obj = &net_device_ctx->device_ctx->device_obj;
        int ret;
 
@@ -118,7 +108,7 @@ static int netvsc_close(struct net_device *net)
 
        netif_stop_queue(net);
 
-       ret = net_drv_obj->OnClose(device_obj);
+       ret = RndisFilterOnClose(device_obj);
        if (ret != 0)
                DPRINT_ERR(NETVSC_DRV, "unable to close device (ret %d).", ret);
 
@@ -282,7 +272,7 @@ retry_send:
 static void netvsc_linkstatus_callback(struct hv_device *device_obj,
                                       unsigned int status)
 {
-       struct device_context *device_ctx = to_device_context(device_obj);
+       struct vm_device *device_ctx = to_vm_device(device_obj);
        struct net_device *net = dev_get_drvdata(&device_ctx->device);
 
        DPRINT_ENTER(NETVSC_DRV);
@@ -309,7 +299,7 @@ static void netvsc_linkstatus_callback(struct hv_device *device_obj,
 static int netvsc_recv_callback(struct hv_device *device_obj,
                                struct hv_netvsc_packet *packet)
 {
-       struct device_context *device_ctx = to_device_context(device_obj);
+       struct vm_device *device_ctx = to_vm_device(device_obj);
        struct net_device *net = dev_get_drvdata(&device_ctx->device);
        struct net_device_context *net_device_ctx;
        struct sk_buff *skb;
@@ -401,7 +391,7 @@ static int netvsc_probe(struct device *device)
        struct netvsc_driver_context *net_drv_ctx =
                (struct netvsc_driver_context *)driver_ctx;
        struct netvsc_driver *net_drv_obj = &net_drv_ctx->drv_obj;
-       struct device_context *device_ctx = device_to_device_context(device);
+       struct vm_device *device_ctx = device_to_vm_device(device);
        struct hv_device *device_obj = &device_ctx->device_obj;
        struct net_device *net = NULL;
        struct net_device_context *net_device_ctx;
@@ -473,7 +463,7 @@ static int netvsc_remove(struct device *device)
        struct netvsc_driver_context *net_drv_ctx =
                (struct netvsc_driver_context *)driver_ctx;
        struct netvsc_driver *net_drv_obj = &net_drv_ctx->drv_obj;
-       struct device_context *device_ctx = device_to_device_context(device);
+       struct vm_device *device_ctx = device_to_vm_device(device);
        struct net_device *net = dev_get_drvdata(&device_ctx->device);
        struct hv_device *device_obj = &device_ctx->device_obj;
        int ret;
@@ -613,6 +603,8 @@ static void __exit netvsc_exit(void)
        DPRINT_EXIT(NETVSC_DRV);
 }
 
+MODULE_LICENSE("GPL");
+MODULE_VERSION(HV_DRV_VERSION);
 module_param(netvsc_ringbuffer_size, int, S_IRUGO);
 
 module_init(netvsc_init);