diff options
-rw-r--r-- | drivers/staging/hv/blkvsc.c | 20 | ||||
-rw-r--r-- | drivers/staging/hv/blkvsc_drv.c | 115 | ||||
-rw-r--r-- | drivers/staging/hv/storvsc.c | 67 | ||||
-rw-r--r-- | drivers/staging/hv/storvsc_api.h | 50 | ||||
-rw-r--r-- | drivers/staging/hv/storvsc_drv.c | 91 |
5 files changed, 175 insertions, 168 deletions
diff --git a/drivers/staging/hv/blkvsc.c b/drivers/staging/hv/blkvsc.c index d5b0abd771a..9ac04c385b1 100644 --- a/drivers/staging/hv/blkvsc.c +++ b/drivers/staging/hv/blkvsc.c | |||
@@ -51,12 +51,12 @@ static int BlkVscOnDeviceAdd(struct hv_device *Device, void *AdditionalInfo) | |||
51 | * id. For IDE devices, the device instance id is formatted as | 51 | * id. For IDE devices, the device instance id is formatted as |
52 | * <bus id> * - <device id> - 8899 - 000000000000. | 52 | * <bus id> * - <device id> - 8899 - 000000000000. |
53 | */ | 53 | */ |
54 | deviceInfo->PathId = Device->deviceInstance.data[3] << 24 | | 54 | deviceInfo->path_id = Device->deviceInstance.data[3] << 24 | |
55 | Device->deviceInstance.data[2] << 16 | | 55 | Device->deviceInstance.data[2] << 16 | |
56 | Device->deviceInstance.data[1] << 8 | | 56 | Device->deviceInstance.data[1] << 8 | |
57 | Device->deviceInstance.data[0]; | 57 | Device->deviceInstance.data[0]; |
58 | 58 | ||
59 | deviceInfo->TargetId = Device->deviceInstance.data[5] << 8 | | 59 | deviceInfo->target_id = Device->deviceInstance.data[5] << 8 | |
60 | Device->deviceInstance.data[4]; | 60 | Device->deviceInstance.data[4]; |
61 | 61 | ||
62 | return ret; | 62 | return ret; |
@@ -75,7 +75,7 @@ int BlkVscInitialize(struct hv_driver *Driver) | |||
75 | Driver->name = gBlkDriverName; | 75 | Driver->name = gBlkDriverName; |
76 | memcpy(&Driver->deviceType, &gBlkVscDeviceType, sizeof(struct hv_guid)); | 76 | memcpy(&Driver->deviceType, &gBlkVscDeviceType, sizeof(struct hv_guid)); |
77 | 77 | ||
78 | storDriver->RequestExtSize = sizeof(struct storvsc_request_extension); | 78 | storDriver->request_ext_size = sizeof(struct storvsc_request_extension); |
79 | 79 | ||
80 | /* | 80 | /* |
81 | * Divide the ring buffer data size (which is 1 page less than the ring | 81 | * Divide the ring buffer data size (which is 1 page less than the ring |
@@ -83,20 +83,20 @@ int BlkVscInitialize(struct hv_driver *Driver) | |||
83 | * by the max request size (which is | 83 | * by the max request size (which is |
84 | * vmbus_channel_packet_multipage_buffer + struct vstor_packet + u64) | 84 | * vmbus_channel_packet_multipage_buffer + struct vstor_packet + u64) |
85 | */ | 85 | */ |
86 | storDriver->MaxOutstandingRequestsPerChannel = | 86 | storDriver->max_outstanding_req_per_channel = |
87 | ((storDriver->RingBufferSize - PAGE_SIZE) / | 87 | ((storDriver->ring_buffer_size - PAGE_SIZE) / |
88 | ALIGN_UP(MAX_MULTIPAGE_BUFFER_PACKET + | 88 | ALIGN_UP(MAX_MULTIPAGE_BUFFER_PACKET + |
89 | sizeof(struct vstor_packet) + sizeof(u64), | 89 | sizeof(struct vstor_packet) + sizeof(u64), |
90 | sizeof(u64))); | 90 | sizeof(u64))); |
91 | 91 | ||
92 | DPRINT_INFO(BLKVSC, "max io outstd %u", | 92 | DPRINT_INFO(BLKVSC, "max io outstd %u", |
93 | storDriver->MaxOutstandingRequestsPerChannel); | 93 | storDriver->max_outstanding_req_per_channel); |
94 | 94 | ||
95 | /* Setup the dispatch table */ | 95 | /* Setup the dispatch table */ |
96 | storDriver->Base.OnDeviceAdd = BlkVscOnDeviceAdd; | 96 | storDriver->base.OnDeviceAdd = BlkVscOnDeviceAdd; |
97 | storDriver->Base.OnDeviceRemove = StorVscOnDeviceRemove; | 97 | storDriver->base.OnDeviceRemove = StorVscOnDeviceRemove; |
98 | storDriver->Base.OnCleanup = StorVscOnCleanup; | 98 | storDriver->base.OnCleanup = StorVscOnCleanup; |
99 | storDriver->OnIORequest = StorVscOnIORequest; | 99 | storDriver->on_io_request = StorVscOnIORequest; |
100 | 100 | ||
101 | return ret; | 101 | return ret; |
102 | } | 102 | } |
diff --git a/drivers/staging/hv/blkvsc_drv.c b/drivers/staging/hv/blkvsc_drv.c index 3f81ca59106..d65d69e3ebc 100644 --- a/drivers/staging/hv/blkvsc_drv.c +++ b/drivers/staging/hv/blkvsc_drv.c | |||
@@ -177,13 +177,13 @@ static int blkvsc_drv_init(int (*drv_init)(struct hv_driver *drv)) | |||
177 | struct driver_context *drv_ctx = &g_blkvsc_drv.drv_ctx; | 177 | struct driver_context *drv_ctx = &g_blkvsc_drv.drv_ctx; |
178 | int ret; | 178 | int ret; |
179 | 179 | ||
180 | storvsc_drv_obj->RingBufferSize = blkvsc_ringbuffer_size; | 180 | storvsc_drv_obj->ring_buffer_size = blkvsc_ringbuffer_size; |
181 | 181 | ||
182 | /* Callback to client driver to complete the initialization */ | 182 | /* Callback to client driver to complete the initialization */ |
183 | drv_init(&storvsc_drv_obj->Base); | 183 | drv_init(&storvsc_drv_obj->base); |
184 | 184 | ||
185 | drv_ctx->driver.name = storvsc_drv_obj->Base.name; | 185 | drv_ctx->driver.name = storvsc_drv_obj->base.name; |
186 | memcpy(&drv_ctx->class_id, &storvsc_drv_obj->Base.deviceType, | 186 | memcpy(&drv_ctx->class_id, &storvsc_drv_obj->base.deviceType, |
187 | sizeof(struct hv_guid)); | 187 | sizeof(struct hv_guid)); |
188 | 188 | ||
189 | drv_ctx->probe = blkvsc_probe; | 189 | drv_ctx->probe = blkvsc_probe; |
@@ -230,8 +230,8 @@ static void blkvsc_drv_exit(void) | |||
230 | device_unregister(current_dev); | 230 | device_unregister(current_dev); |
231 | } | 231 | } |
232 | 232 | ||
233 | if (storvsc_drv_obj->Base.OnCleanup) | 233 | if (storvsc_drv_obj->base.OnCleanup) |
234 | storvsc_drv_obj->Base.OnCleanup(&storvsc_drv_obj->Base); | 234 | storvsc_drv_obj->base.OnCleanup(&storvsc_drv_obj->base); |
235 | 235 | ||
236 | vmbus_child_driver_unregister(drv_ctx); | 236 | vmbus_child_driver_unregister(drv_ctx); |
237 | 237 | ||
@@ -262,7 +262,7 @@ static int blkvsc_probe(struct device *device) | |||
262 | 262 | ||
263 | DPRINT_DBG(BLKVSC_DRV, "blkvsc_probe - enter"); | 263 | DPRINT_DBG(BLKVSC_DRV, "blkvsc_probe - enter"); |
264 | 264 | ||
265 | if (!storvsc_drv_obj->Base.OnDeviceAdd) { | 265 | if (!storvsc_drv_obj->base.OnDeviceAdd) { |
266 | DPRINT_ERR(BLKVSC_DRV, "OnDeviceAdd() not set"); | 266 | DPRINT_ERR(BLKVSC_DRV, "OnDeviceAdd() not set"); |
267 | ret = -1; | 267 | ret = -1; |
268 | goto Cleanup; | 268 | goto Cleanup; |
@@ -284,7 +284,7 @@ static int blkvsc_probe(struct device *device) | |||
284 | 284 | ||
285 | blkdev->request_pool = kmem_cache_create(dev_name(&device_ctx->device), | 285 | blkdev->request_pool = kmem_cache_create(dev_name(&device_ctx->device), |
286 | sizeof(struct blkvsc_request) + | 286 | sizeof(struct blkvsc_request) + |
287 | storvsc_drv_obj->RequestExtSize, 0, | 287 | storvsc_drv_obj->request_ext_size, 0, |
288 | SLAB_HWCACHE_ALIGN, NULL); | 288 | SLAB_HWCACHE_ALIGN, NULL); |
289 | if (!blkdev->request_pool) { | 289 | if (!blkdev->request_pool) { |
290 | ret = -ENOMEM; | 290 | ret = -ENOMEM; |
@@ -293,7 +293,7 @@ static int blkvsc_probe(struct device *device) | |||
293 | 293 | ||
294 | 294 | ||
295 | /* Call to the vsc driver to add the device */ | 295 | /* Call to the vsc driver to add the device */ |
296 | ret = storvsc_drv_obj->Base.OnDeviceAdd(device_obj, &device_info); | 296 | ret = storvsc_drv_obj->base.OnDeviceAdd(device_obj, &device_info); |
297 | if (ret != 0) { | 297 | if (ret != 0) { |
298 | DPRINT_ERR(BLKVSC_DRV, "unable to add blkvsc device"); | 298 | DPRINT_ERR(BLKVSC_DRV, "unable to add blkvsc device"); |
299 | goto Cleanup; | 299 | goto Cleanup; |
@@ -301,9 +301,9 @@ static int blkvsc_probe(struct device *device) | |||
301 | 301 | ||
302 | blkdev->device_ctx = device_ctx; | 302 | blkdev->device_ctx = device_ctx; |
303 | /* this identified the device 0 or 1 */ | 303 | /* this identified the device 0 or 1 */ |
304 | blkdev->target = device_info.TargetId; | 304 | blkdev->target = device_info.target_id; |
305 | /* this identified the ide ctrl 0 or 1 */ | 305 | /* this identified the ide ctrl 0 or 1 */ |
306 | blkdev->path = device_info.PathId; | 306 | blkdev->path = device_info.path_id; |
307 | 307 | ||
308 | dev_set_drvdata(device, blkdev); | 308 | dev_set_drvdata(device, blkdev); |
309 | 309 | ||
@@ -391,7 +391,7 @@ static int blkvsc_probe(struct device *device) | |||
391 | return ret; | 391 | return ret; |
392 | 392 | ||
393 | Remove: | 393 | Remove: |
394 | storvsc_drv_obj->Base.OnDeviceRemove(device_obj); | 394 | storvsc_drv_obj->base.OnDeviceRemove(device_obj); |
395 | 395 | ||
396 | Cleanup: | 396 | Cleanup: |
397 | if (blkdev) { | 397 | if (blkdev) { |
@@ -459,9 +459,9 @@ static int blkvsc_do_flush(struct block_device_context *blkdev) | |||
459 | blkvsc_req->req = NULL; | 459 | blkvsc_req->req = NULL; |
460 | blkvsc_req->write = 0; | 460 | blkvsc_req->write = 0; |
461 | 461 | ||
462 | blkvsc_req->request.DataBuffer.PfnArray[0] = 0; | 462 | blkvsc_req->request.data_buffer.PfnArray[0] = 0; |
463 | blkvsc_req->request.DataBuffer.Offset = 0; | 463 | blkvsc_req->request.data_buffer.Offset = 0; |
464 | blkvsc_req->request.DataBuffer.Length = 0; | 464 | blkvsc_req->request.data_buffer.Length = 0; |
465 | 465 | ||
466 | blkvsc_req->cmnd[0] = SYNCHRONIZE_CACHE; | 466 | blkvsc_req->cmnd[0] = SYNCHRONIZE_CACHE; |
467 | blkvsc_req->cmd_len = 10; | 467 | blkvsc_req->cmd_len = 10; |
@@ -506,9 +506,9 @@ static int blkvsc_do_inquiry(struct block_device_context *blkdev) | |||
506 | blkvsc_req->req = NULL; | 506 | blkvsc_req->req = NULL; |
507 | blkvsc_req->write = 0; | 507 | blkvsc_req->write = 0; |
508 | 508 | ||
509 | blkvsc_req->request.DataBuffer.PfnArray[0] = page_to_pfn(page_buf); | 509 | blkvsc_req->request.data_buffer.PfnArray[0] = page_to_pfn(page_buf); |
510 | blkvsc_req->request.DataBuffer.Offset = 0; | 510 | blkvsc_req->request.data_buffer.Offset = 0; |
511 | blkvsc_req->request.DataBuffer.Length = 64; | 511 | blkvsc_req->request.data_buffer.Length = 64; |
512 | 512 | ||
513 | blkvsc_req->cmnd[0] = INQUIRY; | 513 | blkvsc_req->cmnd[0] = INQUIRY; |
514 | blkvsc_req->cmnd[1] = 0x1; /* Get product data */ | 514 | blkvsc_req->cmnd[1] = 0x1; /* Get product data */ |
@@ -593,9 +593,9 @@ static int blkvsc_do_read_capacity(struct block_device_context *blkdev) | |||
593 | blkvsc_req->req = NULL; | 593 | blkvsc_req->req = NULL; |
594 | blkvsc_req->write = 0; | 594 | blkvsc_req->write = 0; |
595 | 595 | ||
596 | blkvsc_req->request.DataBuffer.PfnArray[0] = page_to_pfn(page_buf); | 596 | blkvsc_req->request.data_buffer.PfnArray[0] = page_to_pfn(page_buf); |
597 | blkvsc_req->request.DataBuffer.Offset = 0; | 597 | blkvsc_req->request.data_buffer.Offset = 0; |
598 | blkvsc_req->request.DataBuffer.Length = 8; | 598 | blkvsc_req->request.data_buffer.Length = 8; |
599 | 599 | ||
600 | blkvsc_req->cmnd[0] = READ_CAPACITY; | 600 | blkvsc_req->cmnd[0] = READ_CAPACITY; |
601 | blkvsc_req->cmd_len = 16; | 601 | blkvsc_req->cmd_len = 16; |
@@ -614,7 +614,7 @@ static int blkvsc_do_read_capacity(struct block_device_context *blkdev) | |||
614 | wait_event_interruptible(blkvsc_req->wevent, blkvsc_req->cond); | 614 | wait_event_interruptible(blkvsc_req->wevent, blkvsc_req->cond); |
615 | 615 | ||
616 | /* check error */ | 616 | /* check error */ |
617 | if (blkvsc_req->request.Status) { | 617 | if (blkvsc_req->request.status) { |
618 | scsi_normalize_sense(blkvsc_req->sense_buffer, | 618 | scsi_normalize_sense(blkvsc_req->sense_buffer, |
619 | SCSI_SENSE_BUFFERSIZE, &sense_hdr); | 619 | SCSI_SENSE_BUFFERSIZE, &sense_hdr); |
620 | 620 | ||
@@ -670,9 +670,9 @@ static int blkvsc_do_read_capacity16(struct block_device_context *blkdev) | |||
670 | blkvsc_req->req = NULL; | 670 | blkvsc_req->req = NULL; |
671 | blkvsc_req->write = 0; | 671 | blkvsc_req->write = 0; |
672 | 672 | ||
673 | blkvsc_req->request.DataBuffer.PfnArray[0] = page_to_pfn(page_buf); | 673 | blkvsc_req->request.data_buffer.PfnArray[0] = page_to_pfn(page_buf); |
674 | blkvsc_req->request.DataBuffer.Offset = 0; | 674 | blkvsc_req->request.data_buffer.Offset = 0; |
675 | blkvsc_req->request.DataBuffer.Length = 12; | 675 | blkvsc_req->request.data_buffer.Length = 12; |
676 | 676 | ||
677 | blkvsc_req->cmnd[0] = 0x9E; /* READ_CAPACITY16; */ | 677 | blkvsc_req->cmnd[0] = 0x9E; /* READ_CAPACITY16; */ |
678 | blkvsc_req->cmd_len = 16; | 678 | blkvsc_req->cmd_len = 16; |
@@ -691,7 +691,7 @@ static int blkvsc_do_read_capacity16(struct block_device_context *blkdev) | |||
691 | wait_event_interruptible(blkvsc_req->wevent, blkvsc_req->cond); | 691 | wait_event_interruptible(blkvsc_req->wevent, blkvsc_req->cond); |
692 | 692 | ||
693 | /* check error */ | 693 | /* check error */ |
694 | if (blkvsc_req->request.Status) { | 694 | if (blkvsc_req->request.status) { |
695 | scsi_normalize_sense(blkvsc_req->sense_buffer, | 695 | scsi_normalize_sense(blkvsc_req->sense_buffer, |
696 | SCSI_SENSE_BUFFERSIZE, &sense_hdr); | 696 | SCSI_SENSE_BUFFERSIZE, &sense_hdr); |
697 | if (sense_hdr.asc == 0x3A) { | 697 | if (sense_hdr.asc == 0x3A) { |
@@ -741,14 +741,14 @@ static int blkvsc_remove(struct device *device) | |||
741 | 741 | ||
742 | DPRINT_DBG(BLKVSC_DRV, "blkvsc_remove()\n"); | 742 | DPRINT_DBG(BLKVSC_DRV, "blkvsc_remove()\n"); |
743 | 743 | ||
744 | if (!storvsc_drv_obj->Base.OnDeviceRemove) | 744 | if (!storvsc_drv_obj->base.OnDeviceRemove) |
745 | return -1; | 745 | return -1; |
746 | 746 | ||
747 | /* | 747 | /* |
748 | * Call to the vsc driver to let it know that the device is being | 748 | * Call to the vsc driver to let it know that the device is being |
749 | * removed | 749 | * removed |
750 | */ | 750 | */ |
751 | ret = storvsc_drv_obj->Base.OnDeviceRemove(device_obj); | 751 | ret = storvsc_drv_obj->base.OnDeviceRemove(device_obj); |
752 | if (ret != 0) { | 752 | if (ret != 0) { |
753 | /* TODO: */ | 753 | /* TODO: */ |
754 | DPRINT_ERR(BLKVSC_DRV, | 754 | DPRINT_ERR(BLKVSC_DRV, |
@@ -865,38 +865,38 @@ static int blkvsc_submit_request(struct blkvsc_request *blkvsc_req, | |||
865 | (blkvsc_req->write) ? "WRITE" : "READ", | 865 | (blkvsc_req->write) ? "WRITE" : "READ", |
866 | (unsigned long) blkvsc_req->sector_start, | 866 | (unsigned long) blkvsc_req->sector_start, |
867 | blkvsc_req->sector_count, | 867 | blkvsc_req->sector_count, |
868 | blkvsc_req->request.DataBuffer.Offset, | 868 | blkvsc_req->request.data_buffer.Offset, |
869 | blkvsc_req->request.DataBuffer.Length); | 869 | blkvsc_req->request.data_buffer.Length); |
870 | #if 0 | 870 | #if 0 |
871 | for (i = 0; i < (blkvsc_req->request.DataBuffer.Length >> 12); i++) { | 871 | for (i = 0; i < (blkvsc_req->request.data_buffer.Length >> 12); i++) { |
872 | DPRINT_DBG(BLKVSC_DRV, "blkvsc_submit_request() - " | 872 | DPRINT_DBG(BLKVSC_DRV, "blkvsc_submit_request() - " |
873 | "req %p pfn[%d] %llx\n", | 873 | "req %p pfn[%d] %llx\n", |
874 | blkvsc_req, i, | 874 | blkvsc_req, i, |
875 | blkvsc_req->request.DataBuffer.PfnArray[i]); | 875 | blkvsc_req->request.data_buffer.PfnArray[i]); |
876 | } | 876 | } |
877 | #endif | 877 | #endif |
878 | 878 | ||
879 | storvsc_req = &blkvsc_req->request; | 879 | storvsc_req = &blkvsc_req->request; |
880 | storvsc_req->Extension = (void *)((unsigned long)blkvsc_req + | 880 | storvsc_req->extension = (void *)((unsigned long)blkvsc_req + |
881 | sizeof(struct blkvsc_request)); | 881 | sizeof(struct blkvsc_request)); |
882 | 882 | ||
883 | storvsc_req->Type = blkvsc_req->write ? WRITE_TYPE : READ_TYPE; | 883 | storvsc_req->type = blkvsc_req->write ? WRITE_TYPE : READ_TYPE; |
884 | 884 | ||
885 | storvsc_req->OnIOCompletion = request_completion; | 885 | storvsc_req->on_io_completion = request_completion; |
886 | storvsc_req->Context = blkvsc_req; | 886 | storvsc_req->context = blkvsc_req; |
887 | 887 | ||
888 | storvsc_req->Host = blkdev->port; | 888 | storvsc_req->host = blkdev->port; |
889 | storvsc_req->Bus = blkdev->path; | 889 | storvsc_req->bus = blkdev->path; |
890 | storvsc_req->TargetId = blkdev->target; | 890 | storvsc_req->target_id = blkdev->target; |
891 | storvsc_req->LunId = 0; /* this is not really used at all */ | 891 | storvsc_req->lun_id = 0; /* this is not really used at all */ |
892 | 892 | ||
893 | storvsc_req->CdbLen = blkvsc_req->cmd_len; | 893 | storvsc_req->cdb_len = blkvsc_req->cmd_len; |
894 | storvsc_req->Cdb = blkvsc_req->cmnd; | 894 | storvsc_req->cdb = blkvsc_req->cmnd; |
895 | 895 | ||
896 | storvsc_req->SenseBuffer = blkvsc_req->sense_buffer; | 896 | storvsc_req->sense_buffer = blkvsc_req->sense_buffer; |
897 | storvsc_req->SenseBufferSize = SCSI_SENSE_BUFFERSIZE; | 897 | storvsc_req->sense_buffer_size = SCSI_SENSE_BUFFERSIZE; |
898 | 898 | ||
899 | ret = storvsc_drv_obj->OnIORequest(&blkdev->device_ctx->device_obj, | 899 | ret = storvsc_drv_obj->on_io_request(&blkdev->device_ctx->device_obj, |
900 | &blkvsc_req->request); | 900 | &blkvsc_req->request); |
901 | if (ret == 0) | 901 | if (ret == 0) |
902 | blkdev->num_outstanding_reqs++; | 902 | blkdev->num_outstanding_reqs++; |
@@ -992,8 +992,10 @@ static int blkvsc_do_request(struct block_device_context *blkdev, | |||
992 | 992 | ||
993 | blkvsc_req->dev = blkdev; | 993 | blkvsc_req->dev = blkdev; |
994 | blkvsc_req->req = req; | 994 | blkvsc_req->req = req; |
995 | blkvsc_req->request.DataBuffer.Offset = bvec->bv_offset; | 995 | blkvsc_req->request.data_buffer.Offset |
996 | blkvsc_req->request.DataBuffer.Length = 0; | 996 | = bvec->bv_offset; |
997 | blkvsc_req->request.data_buffer.Length | ||
998 | = 0; | ||
997 | 999 | ||
998 | /* Add to the group */ | 1000 | /* Add to the group */ |
999 | blkvsc_req->group = group; | 1001 | blkvsc_req->group = group; |
@@ -1007,8 +1009,11 @@ static int blkvsc_do_request(struct block_device_context *blkdev, | |||
1007 | } | 1009 | } |
1008 | 1010 | ||
1009 | /* Add the curr bvec/segment to the curr blkvsc_req */ | 1011 | /* Add the curr bvec/segment to the curr blkvsc_req */ |
1010 | blkvsc_req->request.DataBuffer.PfnArray[databuf_idx] = page_to_pfn(bvec->bv_page); | 1012 | blkvsc_req->request.data_buffer. |
1011 | blkvsc_req->request.DataBuffer.Length += bvec->bv_len; | 1013 | PfnArray[databuf_idx] |
1014 | = page_to_pfn(bvec->bv_page); | ||
1015 | blkvsc_req->request.data_buffer.Length | ||
1016 | += bvec->bv_len; | ||
1012 | 1017 | ||
1013 | prev_bvec = bvec; | 1018 | prev_bvec = bvec; |
1014 | 1019 | ||
@@ -1073,7 +1078,7 @@ static int blkvsc_do_request(struct block_device_context *blkdev, | |||
1073 | static void blkvsc_cmd_completion(struct hv_storvsc_request *request) | 1078 | static void blkvsc_cmd_completion(struct hv_storvsc_request *request) |
1074 | { | 1079 | { |
1075 | struct blkvsc_request *blkvsc_req = | 1080 | struct blkvsc_request *blkvsc_req = |
1076 | (struct blkvsc_request *)request->Context; | 1081 | (struct blkvsc_request *)request->context; |
1077 | struct block_device_context *blkdev = | 1082 | struct block_device_context *blkdev = |
1078 | (struct block_device_context *)blkvsc_req->dev; | 1083 | (struct block_device_context *)blkvsc_req->dev; |
1079 | struct scsi_sense_hdr sense_hdr; | 1084 | struct scsi_sense_hdr sense_hdr; |
@@ -1083,7 +1088,7 @@ static void blkvsc_cmd_completion(struct hv_storvsc_request *request) | |||
1083 | 1088 | ||
1084 | blkdev->num_outstanding_reqs--; | 1089 | blkdev->num_outstanding_reqs--; |
1085 | 1090 | ||
1086 | if (blkvsc_req->request.Status) | 1091 | if (blkvsc_req->request.status) |
1087 | if (scsi_normalize_sense(blkvsc_req->sense_buffer, | 1092 | if (scsi_normalize_sense(blkvsc_req->sense_buffer, |
1088 | SCSI_SENSE_BUFFERSIZE, &sense_hdr)) | 1093 | SCSI_SENSE_BUFFERSIZE, &sense_hdr)) |
1089 | scsi_print_sense_hdr("blkvsc", &sense_hdr); | 1094 | scsi_print_sense_hdr("blkvsc", &sense_hdr); |
@@ -1095,7 +1100,7 @@ static void blkvsc_cmd_completion(struct hv_storvsc_request *request) | |||
1095 | static void blkvsc_request_completion(struct hv_storvsc_request *request) | 1100 | static void blkvsc_request_completion(struct hv_storvsc_request *request) |
1096 | { | 1101 | { |
1097 | struct blkvsc_request *blkvsc_req = | 1102 | struct blkvsc_request *blkvsc_req = |
1098 | (struct blkvsc_request *)request->Context; | 1103 | (struct blkvsc_request *)request->context; |
1099 | struct block_device_context *blkdev = | 1104 | struct block_device_context *blkdev = |
1100 | (struct block_device_context *)blkvsc_req->dev; | 1105 | (struct block_device_context *)blkvsc_req->dev; |
1101 | unsigned long flags; | 1106 | unsigned long flags; |
@@ -1110,7 +1115,7 @@ static void blkvsc_request_completion(struct hv_storvsc_request *request) | |||
1110 | (blkvsc_req->write) ? "WRITE" : "READ", | 1115 | (blkvsc_req->write) ? "WRITE" : "READ", |
1111 | (unsigned long)blkvsc_req->sector_start, | 1116 | (unsigned long)blkvsc_req->sector_start, |
1112 | blkvsc_req->sector_count, | 1117 | blkvsc_req->sector_count, |
1113 | blkvsc_req->request.DataBuffer.Length, | 1118 | blkvsc_req->request.data_buffer.Length, |
1114 | blkvsc_req->group->outstanding, | 1119 | blkvsc_req->group->outstanding, |
1115 | blkdev->num_outstanding_reqs); | 1120 | blkdev->num_outstanding_reqs); |
1116 | 1121 | ||
@@ -1137,7 +1142,7 @@ static void blkvsc_request_completion(struct hv_storvsc_request *request) | |||
1137 | list_del(&comp_req->req_entry); | 1142 | list_del(&comp_req->req_entry); |
1138 | 1143 | ||
1139 | if (!__blk_end_request(comp_req->req, | 1144 | if (!__blk_end_request(comp_req->req, |
1140 | (!comp_req->request.Status ? 0 : -EIO), | 1145 | (!comp_req->request.status ? 0 : -EIO), |
1141 | comp_req->sector_count * blkdev->sector_size)) { | 1146 | comp_req->sector_count * blkdev->sector_size)) { |
1142 | /* | 1147 | /* |
1143 | * All the sectors have been xferred ie the | 1148 | * All the sectors have been xferred ie the |
@@ -1195,7 +1200,7 @@ static int blkvsc_cancel_pending_reqs(struct block_device_context *blkdev) | |||
1195 | 1200 | ||
1196 | if (comp_req->req) { | 1201 | if (comp_req->req) { |
1197 | ret = __blk_end_request(comp_req->req, | 1202 | ret = __blk_end_request(comp_req->req, |
1198 | (!comp_req->request.Status ? 0 : -EIO), | 1203 | (!comp_req->request.status ? 0 : -EIO), |
1199 | comp_req->sector_count * | 1204 | comp_req->sector_count * |
1200 | blkdev->sector_size); | 1205 | blkdev->sector_size); |
1201 | 1206 | ||
diff --git a/drivers/staging/hv/storvsc.c b/drivers/staging/hv/storvsc.c index 96b4ed98611..c4346c63ed5 100644 --- a/drivers/staging/hv/storvsc.c +++ b/drivers/staging/hv/storvsc.c | |||
@@ -370,16 +370,16 @@ static void StorVscOnIOCompletion(struct hv_device *Device, | |||
370 | /* ASSERT(request->OnIOCompletion != NULL); */ | 370 | /* ASSERT(request->OnIOCompletion != NULL); */ |
371 | 371 | ||
372 | /* Copy over the status...etc */ | 372 | /* Copy over the status...etc */ |
373 | request->Status = VStorPacket->vm_srb.scsi_status; | 373 | request->status = VStorPacket->vm_srb.scsi_status; |
374 | 374 | ||
375 | if (request->Status != 0 || VStorPacket->vm_srb.srb_status != 1) { | 375 | if (request->status != 0 || VStorPacket->vm_srb.srb_status != 1) { |
376 | DPRINT_WARN(STORVSC, | 376 | DPRINT_WARN(STORVSC, |
377 | "cmd 0x%x scsi status 0x%x srb status 0x%x\n", | 377 | "cmd 0x%x scsi status 0x%x srb status 0x%x\n", |
378 | request->Cdb[0], VStorPacket->vm_srb.scsi_status, | 378 | request->cdb[0], VStorPacket->vm_srb.scsi_status, |
379 | VStorPacket->vm_srb.srb_status); | 379 | VStorPacket->vm_srb.srb_status); |
380 | } | 380 | } |
381 | 381 | ||
382 | if ((request->Status & 0xFF) == 0x02) { | 382 | if ((request->status & 0xFF) == 0x02) { |
383 | /* CHECK_CONDITION */ | 383 | /* CHECK_CONDITION */ |
384 | if (VStorPacket->vm_srb.srb_status & 0x80) { | 384 | if (VStorPacket->vm_srb.srb_status & 0x80) { |
385 | /* autosense data available */ | 385 | /* autosense data available */ |
@@ -389,19 +389,19 @@ static void StorVscOnIOCompletion(struct hv_device *Device, | |||
389 | 389 | ||
390 | /* ASSERT(VStorPacket->vm_srb.sense_info_length <= */ | 390 | /* ASSERT(VStorPacket->vm_srb.sense_info_length <= */ |
391 | /* request->SenseBufferSize); */ | 391 | /* request->SenseBufferSize); */ |
392 | memcpy(request->SenseBuffer, | 392 | memcpy(request->sense_buffer, |
393 | VStorPacket->vm_srb.sense_data, | 393 | VStorPacket->vm_srb.sense_data, |
394 | VStorPacket->vm_srb.sense_info_length); | 394 | VStorPacket->vm_srb.sense_info_length); |
395 | 395 | ||
396 | request->SenseBufferSize = | 396 | request->sense_buffer_size = |
397 | VStorPacket->vm_srb.sense_info_length; | 397 | VStorPacket->vm_srb.sense_info_length; |
398 | } | 398 | } |
399 | } | 399 | } |
400 | 400 | ||
401 | /* TODO: */ | 401 | /* TODO: */ |
402 | request->BytesXfer = VStorPacket->vm_srb.data_transfer_length; | 402 | request->bytes_xfer = VStorPacket->vm_srb.data_transfer_length; |
403 | 403 | ||
404 | request->OnIOCompletion(request); | 404 | request->on_io_completion(request); |
405 | 405 | ||
406 | atomic_dec(&storDevice->NumOutstandingRequests); | 406 | atomic_dec(&storDevice->NumOutstandingRequests); |
407 | 407 | ||
@@ -501,7 +501,8 @@ static int StorVscConnectToVsp(struct hv_device *Device) | |||
501 | 501 | ||
502 | /* Open the channel */ | 502 | /* Open the channel */ |
503 | ret = vmbus_open(Device->channel, | 503 | ret = vmbus_open(Device->channel, |
504 | storDriver->RingBufferSize, storDriver->RingBufferSize, | 504 | storDriver->ring_buffer_size, |
505 | storDriver->ring_buffer_size, | ||
505 | (void *)&props, | 506 | (void *)&props, |
506 | sizeof(struct vmstorage_channel_properties), | 507 | sizeof(struct vmstorage_channel_properties), |
507 | StorVscOnChannelCallback, Device); | 508 | StorVscOnChannelCallback, Device); |
@@ -551,13 +552,13 @@ static int StorVscOnDeviceAdd(struct hv_device *Device, void *AdditionalInfo) | |||
551 | storChannel->PathId = props->PathId; | 552 | storChannel->PathId = props->PathId; |
552 | storChannel->TargetId = props->TargetId; */ | 553 | storChannel->TargetId = props->TargetId; */ |
553 | 554 | ||
554 | storDevice->PortNumber = deviceInfo->PortNumber; | 555 | storDevice->PortNumber = deviceInfo->port_number; |
555 | /* Send it back up */ | 556 | /* Send it back up */ |
556 | ret = StorVscConnectToVsp(Device); | 557 | ret = StorVscConnectToVsp(Device); |
557 | 558 | ||
558 | /* deviceInfo->PortNumber = storDevice->PortNumber; */ | 559 | /* deviceInfo->PortNumber = storDevice->PortNumber; */ |
559 | deviceInfo->PathId = storDevice->PathId; | 560 | deviceInfo->path_id = storDevice->PathId; |
560 | deviceInfo->TargetId = storDevice->TargetId; | 561 | deviceInfo->target_id = storDevice->TargetId; |
561 | 562 | ||
562 | DPRINT_DBG(STORVSC, "assigned port %u, path %u target %u\n", | 563 | DPRINT_DBG(STORVSC, "assigned port %u, path %u target %u\n", |
563 | storDevice->PortNumber, storDevice->PathId, | 564 | storDevice->PortNumber, storDevice->PathId, |
@@ -672,7 +673,7 @@ static int StorVscOnIORequest(struct hv_device *Device, | |||
672 | int ret = 0; | 673 | int ret = 0; |
673 | 674 | ||
674 | requestExtension = | 675 | requestExtension = |
675 | (struct storvsc_request_extension *)Request->Extension; | 676 | (struct storvsc_request_extension *)Request->extension; |
676 | vstorPacket = &requestExtension->VStorPacket; | 677 | vstorPacket = &requestExtension->VStorPacket; |
677 | storDevice = GetStorDevice(Device); | 678 | storDevice = GetStorDevice(Device); |
678 | 679 | ||
@@ -681,8 +682,8 @@ static int StorVscOnIORequest(struct hv_device *Device, | |||
681 | requestExtension); | 682 | requestExtension); |
682 | 683 | ||
683 | DPRINT_DBG(STORVSC, "req %p len %d bus %d, target %d, lun %d cdblen %d", | 684 | DPRINT_DBG(STORVSC, "req %p len %d bus %d, target %d, lun %d cdblen %d", |
684 | Request, Request->DataBuffer.Length, Request->Bus, | 685 | Request, Request->data_buffer.Length, Request->bus, |
685 | Request->TargetId, Request->LunId, Request->CdbLen); | 686 | Request->target_id, Request->lun_id, Request->cdb_len); |
686 | 687 | ||
687 | if (!storDevice) { | 688 | if (!storDevice) { |
688 | DPRINT_ERR(STORVSC, "unable to get stor device..." | 689 | DPRINT_ERR(STORVSC, "unable to get stor device..." |
@@ -702,19 +703,19 @@ static int StorVscOnIORequest(struct hv_device *Device, | |||
702 | 703 | ||
703 | vstorPacket->vm_srb.length = sizeof(struct vmscsi_request); | 704 | vstorPacket->vm_srb.length = sizeof(struct vmscsi_request); |
704 | 705 | ||
705 | vstorPacket->vm_srb.port_number = Request->Host; | 706 | vstorPacket->vm_srb.port_number = Request->host; |
706 | vstorPacket->vm_srb.path_id = Request->Bus; | 707 | vstorPacket->vm_srb.path_id = Request->bus; |
707 | vstorPacket->vm_srb.target_id = Request->TargetId; | 708 | vstorPacket->vm_srb.target_id = Request->target_id; |
708 | vstorPacket->vm_srb.lun = Request->LunId; | 709 | vstorPacket->vm_srb.lun = Request->lun_id; |
709 | 710 | ||
710 | vstorPacket->vm_srb.sense_info_length = SENSE_BUFFER_SIZE; | 711 | vstorPacket->vm_srb.sense_info_length = SENSE_BUFFER_SIZE; |
711 | 712 | ||
712 | /* Copy over the scsi command descriptor block */ | 713 | /* Copy over the scsi command descriptor block */ |
713 | vstorPacket->vm_srb.cdb_length = Request->CdbLen; | 714 | vstorPacket->vm_srb.cdb_length = Request->cdb_len; |
714 | memcpy(&vstorPacket->vm_srb.cdb, Request->Cdb, Request->CdbLen); | 715 | memcpy(&vstorPacket->vm_srb.cdb, Request->cdb, Request->cdb_len); |
715 | 716 | ||
716 | vstorPacket->vm_srb.data_in = Request->Type; | 717 | vstorPacket->vm_srb.data_in = Request->type; |
717 | vstorPacket->vm_srb.data_transfer_length = Request->DataBuffer.Length; | 718 | vstorPacket->vm_srb.data_transfer_length = Request->data_buffer.Length; |
718 | 719 | ||
719 | vstorPacket->operation = VSTOR_OPERATION_EXECUTE_SRB; | 720 | vstorPacket->operation = VSTOR_OPERATION_EXECUTE_SRB; |
720 | 721 | ||
@@ -728,9 +729,9 @@ static int StorVscOnIORequest(struct hv_device *Device, | |||
728 | vstorPacket->vm_srb.sense_info_length, | 729 | vstorPacket->vm_srb.sense_info_length, |
729 | vstorPacket->vm_srb.cdb_length); | 730 | vstorPacket->vm_srb.cdb_length); |
730 | 731 | ||
731 | if (requestExtension->Request->DataBuffer.Length) { | 732 | if (requestExtension->Request->data_buffer.Length) { |
732 | ret = vmbus_sendpacket_multipagebuffer(Device->channel, | 733 | ret = vmbus_sendpacket_multipagebuffer(Device->channel, |
733 | &requestExtension->Request->DataBuffer, | 734 | &requestExtension->Request->data_buffer, |
734 | vstorPacket, | 735 | vstorPacket, |
735 | sizeof(struct vstor_packet), | 736 | sizeof(struct vstor_packet), |
736 | (unsigned long)requestExtension); | 737 | (unsigned long)requestExtension); |
@@ -785,7 +786,7 @@ int StorVscInitialize(struct hv_driver *Driver) | |||
785 | memcpy(&Driver->deviceType, &gStorVscDeviceType, | 786 | memcpy(&Driver->deviceType, &gStorVscDeviceType, |
786 | sizeof(struct hv_guid)); | 787 | sizeof(struct hv_guid)); |
787 | 788 | ||
788 | storDriver->RequestExtSize = sizeof(struct storvsc_request_extension); | 789 | storDriver->request_ext_size = sizeof(struct storvsc_request_extension); |
789 | 790 | ||
790 | /* | 791 | /* |
791 | * Divide the ring buffer data size (which is 1 page less | 792 | * Divide the ring buffer data size (which is 1 page less |
@@ -793,22 +794,22 @@ int StorVscInitialize(struct hv_driver *Driver) | |||
793 | * the ring buffer indices) by the max request size (which is | 794 | * the ring buffer indices) by the max request size (which is |
794 | * vmbus_channel_packet_multipage_buffer + struct vstor_packet + u64) | 795 | * vmbus_channel_packet_multipage_buffer + struct vstor_packet + u64) |
795 | */ | 796 | */ |
796 | storDriver->MaxOutstandingRequestsPerChannel = | 797 | storDriver->max_outstanding_req_per_channel = |
797 | ((storDriver->RingBufferSize - PAGE_SIZE) / | 798 | ((storDriver->ring_buffer_size - PAGE_SIZE) / |
798 | ALIGN_UP(MAX_MULTIPAGE_BUFFER_PACKET + | 799 | ALIGN_UP(MAX_MULTIPAGE_BUFFER_PACKET + |
799 | sizeof(struct vstor_packet) + sizeof(u64), | 800 | sizeof(struct vstor_packet) + sizeof(u64), |
800 | sizeof(u64))); | 801 | sizeof(u64))); |
801 | 802 | ||
802 | DPRINT_INFO(STORVSC, "max io %u, currently %u\n", | 803 | DPRINT_INFO(STORVSC, "max io %u, currently %u\n", |
803 | storDriver->MaxOutstandingRequestsPerChannel, | 804 | storDriver->max_outstanding_req_per_channel, |
804 | STORVSC_MAX_IO_REQUESTS); | 805 | STORVSC_MAX_IO_REQUESTS); |
805 | 806 | ||
806 | /* Setup the dispatch table */ | 807 | /* Setup the dispatch table */ |
807 | storDriver->Base.OnDeviceAdd = StorVscOnDeviceAdd; | 808 | storDriver->base.OnDeviceAdd = StorVscOnDeviceAdd; |
808 | storDriver->Base.OnDeviceRemove = StorVscOnDeviceRemove; | 809 | storDriver->base.OnDeviceRemove = StorVscOnDeviceRemove; |
809 | storDriver->Base.OnCleanup = StorVscOnCleanup; | 810 | storDriver->base.OnCleanup = StorVscOnCleanup; |
810 | 811 | ||
811 | storDriver->OnIORequest = StorVscOnIORequest; | 812 | storDriver->on_io_request = StorVscOnIORequest; |
812 | 813 | ||
813 | return 0; | 814 | return 0; |
814 | } | 815 | } |
diff --git a/drivers/staging/hv/storvsc_api.h b/drivers/staging/hv/storvsc_api.h index 8505a1c5f9e..46f031e0afc 100644 --- a/drivers/staging/hv/storvsc_api.h +++ b/drivers/staging/hv/storvsc_api.h | |||
@@ -53,58 +53,58 @@ enum storvsc_request_type{ | |||
53 | }; | 53 | }; |
54 | 54 | ||
55 | struct hv_storvsc_request { | 55 | struct hv_storvsc_request { |
56 | enum storvsc_request_type Type; | 56 | enum storvsc_request_type type; |
57 | u32 Host; | 57 | u32 host; |
58 | u32 Bus; | 58 | u32 bus; |
59 | u32 TargetId; | 59 | u32 target_id; |
60 | u32 LunId; | 60 | u32 lun_id; |
61 | u8 *Cdb; | 61 | u8 *cdb; |
62 | u32 CdbLen; | 62 | u32 cdb_len; |
63 | u32 Status; | 63 | u32 status; |
64 | u32 BytesXfer; | 64 | u32 bytes_xfer; |
65 | 65 | ||
66 | unsigned char *SenseBuffer; | 66 | unsigned char *sense_buffer; |
67 | u32 SenseBufferSize; | 67 | u32 sense_buffer_size; |
68 | 68 | ||
69 | void *Context; | 69 | void *context; |
70 | 70 | ||
71 | void (*OnIOCompletion)(struct hv_storvsc_request *Request); | 71 | void (*on_io_completion)(struct hv_storvsc_request *request); |
72 | 72 | ||
73 | /* This points to the memory after DataBuffer */ | 73 | /* This points to the memory after DataBuffer */ |
74 | void *Extension; | 74 | void *extension; |
75 | 75 | ||
76 | struct hv_multipage_buffer DataBuffer; | 76 | struct hv_multipage_buffer data_buffer; |
77 | }; | 77 | }; |
78 | 78 | ||
79 | /* Represents the block vsc driver */ | 79 | /* Represents the block vsc driver */ |
80 | struct storvsc_driver_object { | 80 | struct storvsc_driver_object { |
81 | /* Must be the first field */ | 81 | /* Must be the first field */ |
82 | /* Which is a bug FIXME! */ | 82 | /* Which is a bug FIXME! */ |
83 | struct hv_driver Base; | 83 | struct hv_driver base; |
84 | 84 | ||
85 | /* Set by caller (in bytes) */ | 85 | /* Set by caller (in bytes) */ |
86 | u32 RingBufferSize; | 86 | u32 ring_buffer_size; |
87 | 87 | ||
88 | /* Allocate this much private extension for each I/O request */ | 88 | /* Allocate this much private extension for each I/O request */ |
89 | u32 RequestExtSize; | 89 | u32 request_ext_size; |
90 | 90 | ||
91 | /* Maximum # of requests in flight per channel/device */ | 91 | /* Maximum # of requests in flight per channel/device */ |
92 | u32 MaxOutstandingRequestsPerChannel; | 92 | u32 max_outstanding_req_per_channel; |
93 | 93 | ||
94 | /* Specific to this driver */ | 94 | /* Specific to this driver */ |
95 | int (*OnIORequest)(struct hv_device *Device, | 95 | int (*on_io_request)(struct hv_device *device, |
96 | struct hv_storvsc_request *Request); | 96 | struct hv_storvsc_request *request); |
97 | }; | 97 | }; |
98 | 98 | ||
99 | struct storvsc_device_info { | 99 | struct storvsc_device_info { |
100 | unsigned int PortNumber; | 100 | unsigned int port_number; |
101 | unsigned char PathId; | 101 | unsigned char path_id; |
102 | unsigned char TargetId; | 102 | unsigned char target_id; |
103 | }; | 103 | }; |
104 | 104 | ||
105 | /* Interface */ | 105 | /* Interface */ |
106 | int StorVscInitialize(struct hv_driver *driver); | 106 | int StorVscInitialize(struct hv_driver *driver); |
107 | int StorVscOnHostReset(struct hv_device *Device); | 107 | int StorVscOnHostReset(struct hv_device *device); |
108 | int BlkVscInitialize(struct hv_driver *driver); | 108 | int BlkVscInitialize(struct hv_driver *driver); |
109 | 109 | ||
110 | #endif /* _STORVSC_API_H_ */ | 110 | #endif /* _STORVSC_API_H_ */ |
diff --git a/drivers/staging/hv/storvsc_drv.c b/drivers/staging/hv/storvsc_drv.c index 41d9acf4cd6..68a8853fa9c 100644 --- a/drivers/staging/hv/storvsc_drv.c +++ b/drivers/staging/hv/storvsc_drv.c | |||
@@ -141,28 +141,28 @@ static int storvsc_drv_init(int (*drv_init)(struct hv_driver *drv)) | |||
141 | struct storvsc_driver_object *storvsc_drv_obj = &g_storvsc_drv.drv_obj; | 141 | struct storvsc_driver_object *storvsc_drv_obj = &g_storvsc_drv.drv_obj; |
142 | struct driver_context *drv_ctx = &g_storvsc_drv.drv_ctx; | 142 | struct driver_context *drv_ctx = &g_storvsc_drv.drv_ctx; |
143 | 143 | ||
144 | storvsc_drv_obj->RingBufferSize = storvsc_ringbuffer_size; | 144 | storvsc_drv_obj->ring_buffer_size = storvsc_ringbuffer_size; |
145 | 145 | ||
146 | /* Callback to client driver to complete the initialization */ | 146 | /* Callback to client driver to complete the initialization */ |
147 | drv_init(&storvsc_drv_obj->Base); | 147 | drv_init(&storvsc_drv_obj->base); |
148 | 148 | ||
149 | DPRINT_INFO(STORVSC_DRV, | 149 | DPRINT_INFO(STORVSC_DRV, |
150 | "request extension size %u, max outstanding reqs %u", | 150 | "request extension size %u, max outstanding reqs %u", |
151 | storvsc_drv_obj->RequestExtSize, | 151 | storvsc_drv_obj->request_ext_size, |
152 | storvsc_drv_obj->MaxOutstandingRequestsPerChannel); | 152 | storvsc_drv_obj->max_outstanding_req_per_channel); |
153 | 153 | ||
154 | if (storvsc_drv_obj->MaxOutstandingRequestsPerChannel < | 154 | if (storvsc_drv_obj->max_outstanding_req_per_channel < |
155 | STORVSC_MAX_IO_REQUESTS) { | 155 | STORVSC_MAX_IO_REQUESTS) { |
156 | DPRINT_ERR(STORVSC_DRV, | 156 | DPRINT_ERR(STORVSC_DRV, |
157 | "The number of outstanding io requests (%d) " | 157 | "The number of outstanding io requests (%d) " |
158 | "is larger than that supported (%d) internally.", | 158 | "is larger than that supported (%d) internally.", |
159 | STORVSC_MAX_IO_REQUESTS, | 159 | STORVSC_MAX_IO_REQUESTS, |
160 | storvsc_drv_obj->MaxOutstandingRequestsPerChannel); | 160 | storvsc_drv_obj->max_outstanding_req_per_channel); |
161 | return -1; | 161 | return -1; |
162 | } | 162 | } |
163 | 163 | ||
164 | drv_ctx->driver.name = storvsc_drv_obj->Base.name; | 164 | drv_ctx->driver.name = storvsc_drv_obj->base.name; |
165 | memcpy(&drv_ctx->class_id, &storvsc_drv_obj->Base.deviceType, | 165 | memcpy(&drv_ctx->class_id, &storvsc_drv_obj->base.deviceType, |
166 | sizeof(struct hv_guid)); | 166 | sizeof(struct hv_guid)); |
167 | 167 | ||
168 | drv_ctx->probe = storvsc_probe; | 168 | drv_ctx->probe = storvsc_probe; |
@@ -207,8 +207,8 @@ static void storvsc_drv_exit(void) | |||
207 | device_unregister(current_dev); | 207 | device_unregister(current_dev); |
208 | } | 208 | } |
209 | 209 | ||
210 | if (storvsc_drv_obj->Base.OnCleanup) | 210 | if (storvsc_drv_obj->base.OnCleanup) |
211 | storvsc_drv_obj->Base.OnCleanup(&storvsc_drv_obj->Base); | 211 | storvsc_drv_obj->base.OnCleanup(&storvsc_drv_obj->base); |
212 | 212 | ||
213 | vmbus_child_driver_unregister(drv_ctx); | 213 | vmbus_child_driver_unregister(drv_ctx); |
214 | return; | 214 | return; |
@@ -232,7 +232,7 @@ static int storvsc_probe(struct device *device) | |||
232 | struct host_device_context *host_device_ctx; | 232 | struct host_device_context *host_device_ctx; |
233 | struct storvsc_device_info device_info; | 233 | struct storvsc_device_info device_info; |
234 | 234 | ||
235 | if (!storvsc_drv_obj->Base.OnDeviceAdd) | 235 | if (!storvsc_drv_obj->base.OnDeviceAdd) |
236 | return -1; | 236 | return -1; |
237 | 237 | ||
238 | host = scsi_host_alloc(&scsi_driver, | 238 | host = scsi_host_alloc(&scsi_driver, |
@@ -253,7 +253,7 @@ static int storvsc_probe(struct device *device) | |||
253 | host_device_ctx->request_pool = | 253 | host_device_ctx->request_pool = |
254 | kmem_cache_create(dev_name(&device_ctx->device), | 254 | kmem_cache_create(dev_name(&device_ctx->device), |
255 | sizeof(struct storvsc_cmd_request) + | 255 | sizeof(struct storvsc_cmd_request) + |
256 | storvsc_drv_obj->RequestExtSize, 0, | 256 | storvsc_drv_obj->request_ext_size, 0, |
257 | SLAB_HWCACHE_ALIGN, NULL); | 257 | SLAB_HWCACHE_ALIGN, NULL); |
258 | 258 | ||
259 | if (!host_device_ctx->request_pool) { | 259 | if (!host_device_ctx->request_pool) { |
@@ -261,9 +261,9 @@ static int storvsc_probe(struct device *device) | |||
261 | return -ENOMEM; | 261 | return -ENOMEM; |
262 | } | 262 | } |
263 | 263 | ||
264 | device_info.PortNumber = host->host_no; | 264 | device_info.port_number = host->host_no; |
265 | /* Call to the vsc driver to add the device */ | 265 | /* Call to the vsc driver to add the device */ |
266 | ret = storvsc_drv_obj->Base.OnDeviceAdd(device_obj, | 266 | ret = storvsc_drv_obj->base.OnDeviceAdd(device_obj, |
267 | (void *)&device_info); | 267 | (void *)&device_info); |
268 | if (ret != 0) { | 268 | if (ret != 0) { |
269 | DPRINT_ERR(STORVSC_DRV, "unable to add scsi vsc device"); | 269 | DPRINT_ERR(STORVSC_DRV, "unable to add scsi vsc device"); |
@@ -273,8 +273,8 @@ static int storvsc_probe(struct device *device) | |||
273 | } | 273 | } |
274 | 274 | ||
275 | /* host_device_ctx->port = device_info.PortNumber; */ | 275 | /* host_device_ctx->port = device_info.PortNumber; */ |
276 | host_device_ctx->path = device_info.PathId; | 276 | host_device_ctx->path = device_info.path_id; |
277 | host_device_ctx->target = device_info.TargetId; | 277 | host_device_ctx->target = device_info.target_id; |
278 | 278 | ||
279 | /* max # of devices per target */ | 279 | /* max # of devices per target */ |
280 | host->max_lun = STORVSC_MAX_LUNS_PER_TARGET; | 280 | host->max_lun = STORVSC_MAX_LUNS_PER_TARGET; |
@@ -288,7 +288,7 @@ static int storvsc_probe(struct device *device) | |||
288 | if (ret != 0) { | 288 | if (ret != 0) { |
289 | DPRINT_ERR(STORVSC_DRV, "unable to add scsi host device"); | 289 | DPRINT_ERR(STORVSC_DRV, "unable to add scsi host device"); |
290 | 290 | ||
291 | storvsc_drv_obj->Base.OnDeviceRemove(device_obj); | 291 | storvsc_drv_obj->base.OnDeviceRemove(device_obj); |
292 | 292 | ||
293 | kmem_cache_destroy(host_device_ctx->request_pool); | 293 | kmem_cache_destroy(host_device_ctx->request_pool); |
294 | scsi_host_put(host); | 294 | scsi_host_put(host); |
@@ -318,14 +318,14 @@ static int storvsc_remove(struct device *device) | |||
318 | (struct host_device_context *)host->hostdata; | 318 | (struct host_device_context *)host->hostdata; |
319 | 319 | ||
320 | 320 | ||
321 | if (!storvsc_drv_obj->Base.OnDeviceRemove) | 321 | if (!storvsc_drv_obj->base.OnDeviceRemove) |
322 | return -1; | 322 | return -1; |
323 | 323 | ||
324 | /* | 324 | /* |
325 | * Call to the vsc driver to let it know that the device is being | 325 | * Call to the vsc driver to let it know that the device is being |
326 | * removed | 326 | * removed |
327 | */ | 327 | */ |
328 | ret = storvsc_drv_obj->Base.OnDeviceRemove(device_obj); | 328 | ret = storvsc_drv_obj->base.OnDeviceRemove(device_obj); |
329 | if (ret != 0) { | 329 | if (ret != 0) { |
330 | /* TODO: */ | 330 | /* TODO: */ |
331 | DPRINT_ERR(STORVSC, "unable to remove vsc device (ret %d)", | 331 | DPRINT_ERR(STORVSC, "unable to remove vsc device (ret %d)", |
@@ -351,7 +351,7 @@ static int storvsc_remove(struct device *device) | |||
351 | static void storvsc_commmand_completion(struct hv_storvsc_request *request) | 351 | static void storvsc_commmand_completion(struct hv_storvsc_request *request) |
352 | { | 352 | { |
353 | struct storvsc_cmd_request *cmd_request = | 353 | struct storvsc_cmd_request *cmd_request = |
354 | (struct storvsc_cmd_request *)request->Context; | 354 | (struct storvsc_cmd_request *)request->context; |
355 | struct scsi_cmnd *scmnd = cmd_request->cmd; | 355 | struct scsi_cmnd *scmnd = cmd_request->cmd; |
356 | struct host_device_context *host_device_ctx = | 356 | struct host_device_context *host_device_ctx = |
357 | (struct host_device_context *)scmnd->device->host->hostdata; | 357 | (struct host_device_context *)scmnd->device->host->hostdata; |
@@ -376,16 +376,17 @@ static void storvsc_commmand_completion(struct hv_storvsc_request *request) | |||
376 | cmd_request->bounce_sgl_count); | 376 | cmd_request->bounce_sgl_count); |
377 | } | 377 | } |
378 | 378 | ||
379 | scmnd->result = request->Status; | 379 | scmnd->result = request->status; |
380 | 380 | ||
381 | if (scmnd->result) { | 381 | if (scmnd->result) { |
382 | if (scsi_normalize_sense(scmnd->sense_buffer, | 382 | if (scsi_normalize_sense(scmnd->sense_buffer, |
383 | request->SenseBufferSize, &sense_hdr)) | 383 | request->sense_buffer_size, &sense_hdr)) |
384 | scsi_print_sense_hdr("storvsc", &sense_hdr); | 384 | scsi_print_sense_hdr("storvsc", &sense_hdr); |
385 | } | 385 | } |
386 | 386 | ||
387 | /* ASSERT(request->BytesXfer <= request->DataBuffer.Length); */ | 387 | /* ASSERT(request->BytesXfer <= request->data_buffer.Length); */ |
388 | scsi_set_resid(scmnd, request->DataBuffer.Length - request->BytesXfer); | 388 | scsi_set_resid(scmnd, |
389 | request->data_buffer.Length - request->bytes_xfer); | ||
389 | 390 | ||
390 | scsi_done_fn = scmnd->scsi_done; | 391 | scsi_done_fn = scmnd->scsi_done; |
391 | 392 | ||
@@ -658,42 +659,42 @@ static int storvsc_queuecommand(struct scsi_cmnd *scmnd, | |||
658 | 659 | ||
659 | request = &cmd_request->request; | 660 | request = &cmd_request->request; |
660 | 661 | ||
661 | request->Extension = | 662 | request->extension = |
662 | (void *)((unsigned long)cmd_request + request_size); | 663 | (void *)((unsigned long)cmd_request + request_size); |
663 | DPRINT_DBG(STORVSC_DRV, "req %p size %d ext %d", request, request_size, | 664 | DPRINT_DBG(STORVSC_DRV, "req %p size %d ext %d", request, request_size, |
664 | storvsc_drv_obj->RequestExtSize); | 665 | storvsc_drv_obj->request_ext_size); |
665 | 666 | ||
666 | /* Build the SRB */ | 667 | /* Build the SRB */ |
667 | switch (scmnd->sc_data_direction) { | 668 | switch (scmnd->sc_data_direction) { |
668 | case DMA_TO_DEVICE: | 669 | case DMA_TO_DEVICE: |
669 | request->Type = WRITE_TYPE; | 670 | request->type = WRITE_TYPE; |
670 | break; | 671 | break; |
671 | case DMA_FROM_DEVICE: | 672 | case DMA_FROM_DEVICE: |
672 | request->Type = READ_TYPE; | 673 | request->type = READ_TYPE; |
673 | break; | 674 | break; |
674 | default: | 675 | default: |
675 | request->Type = UNKNOWN_TYPE; | 676 | request->type = UNKNOWN_TYPE; |
676 | break; | 677 | break; |
677 | } | 678 | } |
678 | 679 | ||
679 | request->OnIOCompletion = storvsc_commmand_completion; | 680 | request->on_io_completion = storvsc_commmand_completion; |
680 | request->Context = cmd_request;/* scmnd; */ | 681 | request->context = cmd_request;/* scmnd; */ |
681 | 682 | ||
682 | /* request->PortId = scmnd->device->channel; */ | 683 | /* request->PortId = scmnd->device->channel; */ |
683 | request->Host = host_device_ctx->port; | 684 | request->host = host_device_ctx->port; |
684 | request->Bus = scmnd->device->channel; | 685 | request->bus = scmnd->device->channel; |
685 | request->TargetId = scmnd->device->id; | 686 | request->target_id = scmnd->device->id; |
686 | request->LunId = scmnd->device->lun; | 687 | request->lun_id = scmnd->device->lun; |
687 | 688 | ||
688 | /* ASSERT(scmnd->cmd_len <= 16); */ | 689 | /* ASSERT(scmnd->cmd_len <= 16); */ |
689 | request->CdbLen = scmnd->cmd_len; | 690 | request->cdb_len = scmnd->cmd_len; |
690 | request->Cdb = scmnd->cmnd; | 691 | request->cdb = scmnd->cmnd; |
691 | 692 | ||
692 | request->SenseBuffer = scmnd->sense_buffer; | 693 | request->sense_buffer = scmnd->sense_buffer; |
693 | request->SenseBufferSize = SCSI_SENSE_BUFFERSIZE; | 694 | request->sense_buffer_size = SCSI_SENSE_BUFFERSIZE; |
694 | 695 | ||
695 | 696 | ||
696 | request->DataBuffer.Length = scsi_bufflen(scmnd); | 697 | request->data_buffer.Length = scsi_bufflen(scmnd); |
697 | if (scsi_sg_count(scmnd)) { | 698 | if (scsi_sg_count(scmnd)) { |
698 | sgl = (struct scatterlist *)scsi_sglist(scmnd); | 699 | sgl = (struct scatterlist *)scsi_sglist(scmnd); |
699 | sg_count = scsi_sg_count(scmnd); | 700 | sg_count = scsi_sg_count(scmnd); |
@@ -734,25 +735,25 @@ static int storvsc_queuecommand(struct scsi_cmnd *scmnd, | |||
734 | sg_count = cmd_request->bounce_sgl_count; | 735 | sg_count = cmd_request->bounce_sgl_count; |
735 | } | 736 | } |
736 | 737 | ||
737 | request->DataBuffer.Offset = sgl[0].offset; | 738 | request->data_buffer.Offset = sgl[0].offset; |
738 | 739 | ||
739 | for (i = 0; i < sg_count; i++) { | 740 | for (i = 0; i < sg_count; i++) { |
740 | DPRINT_DBG(STORVSC_DRV, "sgl[%d] len %d offset %d\n", | 741 | DPRINT_DBG(STORVSC_DRV, "sgl[%d] len %d offset %d\n", |
741 | i, sgl[i].length, sgl[i].offset); | 742 | i, sgl[i].length, sgl[i].offset); |
742 | request->DataBuffer.PfnArray[i] = | 743 | request->data_buffer.PfnArray[i] = |
743 | page_to_pfn(sg_page((&sgl[i]))); | 744 | page_to_pfn(sg_page((&sgl[i]))); |
744 | } | 745 | } |
745 | } else if (scsi_sglist(scmnd)) { | 746 | } else if (scsi_sglist(scmnd)) { |
746 | /* ASSERT(scsi_bufflen(scmnd) <= PAGE_SIZE); */ | 747 | /* ASSERT(scsi_bufflen(scmnd) <= PAGE_SIZE); */ |
747 | request->DataBuffer.Offset = | 748 | request->data_buffer.Offset = |
748 | virt_to_phys(scsi_sglist(scmnd)) & (PAGE_SIZE-1); | 749 | virt_to_phys(scsi_sglist(scmnd)) & (PAGE_SIZE-1); |
749 | request->DataBuffer.PfnArray[0] = | 750 | request->data_buffer.PfnArray[0] = |
750 | virt_to_phys(scsi_sglist(scmnd)) >> PAGE_SHIFT; | 751 | virt_to_phys(scsi_sglist(scmnd)) >> PAGE_SHIFT; |
751 | } | 752 | } |
752 | 753 | ||
753 | retry_request: | 754 | retry_request: |
754 | /* Invokes the vsc to start an IO */ | 755 | /* Invokes the vsc to start an IO */ |
755 | ret = storvsc_drv_obj->OnIORequest(&device_ctx->device_obj, | 756 | ret = storvsc_drv_obj->on_io_request(&device_ctx->device_obj, |
756 | &cmd_request->request); | 757 | &cmd_request->request); |
757 | if (ret == -1) { | 758 | if (ret == -1) { |
758 | /* no more space */ | 759 | /* no more space */ |