return 0;
 }
 
-static int StorVscOnHostReset(struct hv_device *Device)
+int StorVscOnHostReset(struct hv_device *Device)
 {
        struct storvsc_device *storDevice;
        struct storvsc_request_extension *request;
        storDriver->Base.OnCleanup      = StorVscOnCleanup;
 
        storDriver->OnIORequest         = StorVscOnIORequest;
-       storDriver->OnHostReset         = StorVscOnHostReset;
 
        DPRINT_EXIT(STORVSC);
 
 
        /* Specific to this driver */
        int (*OnIORequest)(struct hv_device *Device,
                           struct hv_storvsc_request *Request);
-       int (*OnHostReset)(struct hv_device *Device);
 };
 
 struct storvsc_device_info {
 
 /* Interface */
 int StorVscInitialize(struct hv_driver *driver);
+int StorVscOnHostReset(struct hv_device *Device);
 int BlkVscInitialize(struct hv_driver *driver);
 
 #endif /* _STORVSC_API_H_ */
 
        struct host_device_context *host_device_ctx =
                (struct host_device_context *)scmnd->device->host->hostdata;
        struct device_context *device_ctx = host_device_ctx->device_ctx;
-       struct driver_context *driver_ctx =
-                       driver_to_driver_context(device_ctx->device.driver);
-       struct storvsc_driver_context *storvsc_drv_ctx =
-                       (struct storvsc_driver_context *)driver_ctx;
-
-       struct storvsc_driver_object *storvsc_drv_obj =
-                       &storvsc_drv_ctx->drv_obj;
 
        DPRINT_ENTER(STORVSC_DRV);
 
                    scmnd->device, &device_ctx->device_obj);
 
        /* Invokes the vsc to reset the host/bus */
-       ASSERT(storvsc_drv_obj->OnHostReset);
-       ret = storvsc_drv_obj->OnHostReset(&device_ctx->device_obj);
+       ret = StorVscOnHostReset(&device_ctx->device_obj);
        if (ret != 0) {
                DPRINT_EXIT(STORVSC_DRV);
                return ret;