Staging: hv: Move the definition of the function stor_vsc_on_host_reset()
authorK. Y. Srinivasan <kys@microsoft.com>
Wed, 23 Mar 2011 17:50:33 +0000 (10:50 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 5 Apr 2011 04:50:47 +0000 (21:50 -0700)
stor_vsc_on_host_reset() function is only used in storvsc_drv.c.
Move this function from storvsc.c to storvsc_drv.c

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/hv/storvsc.c
drivers/staging/hv/storvsc_drv.c

index c576e7b1e250e18d4f794044a6b1495980a0149f..6801e3738766c3a9867f1cacbab61769ee1524a0 100644 (file)
@@ -522,62 +522,6 @@ int stor_vsc_on_device_remove(struct hv_device *device)
        return 0;
 }
 
-int stor_vsc_on_host_reset(struct hv_device *device)
-{
-       struct storvsc_device *stor_device;
-       struct storvsc_request_extension *request;
-       struct vstor_packet *vstor_packet;
-       int ret;
-
-       DPRINT_INFO(STORVSC, "resetting host adapter...");
-
-       stor_device = get_stor_device(device);
-       if (!stor_device) {
-               DPRINT_ERR(STORVSC, "unable to get stor device..."
-                          "device being destroyed?");
-               return -1;
-       }
-
-       request = &stor_device->reset_request;
-       vstor_packet = &request->vstor_packet;
-
-       init_waitqueue_head(&request->wait_event);
-
-       vstor_packet->operation = VSTOR_OPERATION_RESET_BUS;
-       vstor_packet->flags = REQUEST_COMPLETION_FLAG;
-       vstor_packet->vm_srb.path_id = stor_device->path_id;
-
-       request->wait_condition = 0;
-       ret = vmbus_sendpacket(device->channel, vstor_packet,
-                              sizeof(struct vstor_packet),
-                              (unsigned long)&stor_device->reset_request,
-                              VM_PKT_DATA_INBAND,
-                              VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
-       if (ret != 0) {
-               DPRINT_ERR(STORVSC, "Unable to send reset packet %p ret %d",
-                          vstor_packet, ret);
-               goto cleanup;
-       }
-
-       wait_event_timeout(request->wait_event, request->wait_condition,
-                       msecs_to_jiffies(1000));
-       if (request->wait_condition == 0) {
-               ret = -ETIMEDOUT;
-               goto cleanup;
-       }
-
-       DPRINT_INFO(STORVSC, "host adapter reset completed");
-
-       /*
-        * At this point, all outstanding requests in the adapter
-        * should have been flushed out and return to us
-        */
-
-cleanup:
-       put_stor_device(device);
-       return ret;
-}
-
 /*
  * stor_vsc_on_io_request - Callback to initiate an I/O request
  */
index 2c51a0728cc196856a16dfe45bee257377b5247f..e0a11958141cfa79426120b9c1d8a56020752651 100644 (file)
@@ -36,6 +36,8 @@
 #include "version_info.h"
 #include "vmbus.h"
 #include "storvsc_api.h"
+#include "vstorage.h"
+#include "channel.h"
 
 
 static const char *g_driver_name = "storvsc";
@@ -230,6 +232,63 @@ static int storvsc_drv_init(void)
        return ret;
 }
 
+
+int stor_vsc_on_host_reset(struct hv_device *device)
+{
+       struct storvsc_device *stor_device;
+       struct storvsc_request_extension *request;
+       struct vstor_packet *vstor_packet;
+       int ret;
+
+       DPRINT_INFO(STORVSC, "resetting host adapter...");
+
+       stor_device = get_stor_device(device);
+       if (!stor_device) {
+               DPRINT_ERR(STORVSC, "unable to get stor device..."
+                          "device being destroyed?");
+               return -1;
+       }
+
+       request = &stor_device->reset_request;
+       vstor_packet = &request->vstor_packet;
+
+       init_waitqueue_head(&request->wait_event);
+
+       vstor_packet->operation = VSTOR_OPERATION_RESET_BUS;
+       vstor_packet->flags = REQUEST_COMPLETION_FLAG;
+       vstor_packet->vm_srb.path_id = stor_device->path_id;
+
+       request->wait_condition = 0;
+       ret = vmbus_sendpacket(device->channel, vstor_packet,
+                              sizeof(struct vstor_packet),
+                              (unsigned long)&stor_device->reset_request,
+                              VM_PKT_DATA_INBAND,
+                              VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
+       if (ret != 0) {
+               DPRINT_ERR(STORVSC, "Unable to send reset packet %p ret %d",
+                          vstor_packet, ret);
+               goto cleanup;
+       }
+
+       wait_event_timeout(request->wait_event, request->wait_condition,
+                       msecs_to_jiffies(1000));
+       if (request->wait_condition == 0) {
+               ret = -ETIMEDOUT;
+               goto cleanup;
+       }
+
+       DPRINT_INFO(STORVSC, "host adapter reset completed");
+
+       /*
+        * At this point, all outstanding requests in the adapter
+        * should have been flushed out and return to us
+        */
+
+cleanup:
+       put_stor_device(device);
+       return ret;
+}
+
 static int storvsc_drv_exit_cb(struct device *dev, void *data)
 {
        struct device **curr = (struct device **)data;