Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 249145
b: refs/heads/master
c: e46ee8e
h: refs/heads/master
i:
  249143: 0829e4c
v: v3
  • Loading branch information
K. Y. Srinivasan authored and Greg Kroah-Hartman committed Apr 25, 2011
1 parent 6388cc8 commit 64a3fc8
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 49 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1f91bca8dbf046ad6cb57fa203b7ca735f8c7e4a
refs/heads/master: e46ee8efd7b60afd26445f1bc0bad9c5d5e7d17e
55 changes: 16 additions & 39 deletions trunk/drivers/staging/hv/blkvsc_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -953,11 +953,8 @@ static int blkvsc_probe(struct device *device)

struct block_device_context *blkdev = NULL;
struct storvsc_device_info device_info;
int major = 0;
int devnum = 0;
struct storvsc_major_info major_info;
int ret = 0;
static int ide0_registered;
static int ide1_registered;


blkdev = kzalloc(sizeof(struct block_device_context), GFP_KERNEL);
Expand Down Expand Up @@ -994,43 +991,23 @@ static int blkvsc_probe(struct device *device)

dev_set_drvdata(device, blkdev);

/* Calculate the major and device num */
if (blkdev->path == 0) {
major = IDE0_MAJOR;
devnum = blkdev->path + blkdev->target; /* 0 or 1 */

if (!ide0_registered) {
ret = register_blkdev(major, "ide");
if (ret != 0) {
DPRINT_ERR(BLKVSC_DRV,
"register_blkdev() failed! ret %d",
ret);
goto remove;
}
ret = stor_vsc_get_major_info(&device_info, &major_info);

ide0_registered = 1;
}
} else if (blkdev->path == 1) {
major = IDE1_MAJOR;
devnum = blkdev->path + blkdev->target + 1; /* 2 or 3 */

if (!ide1_registered) {
ret = register_blkdev(major, "ide");
if (ret != 0) {
DPRINT_ERR(BLKVSC_DRV,
"register_blkdev() failed! ret %d",
ret);
goto remove;
}
if (ret)
goto cleanup;

if (major_info.do_register) {
ret = register_blkdev(major_info.major, major_info.devname);

ide1_registered = 1;
if (ret != 0) {
DPRINT_ERR(BLKVSC_DRV,
"register_blkdev() failed! ret %d", ret);
goto remove;
}
} else {
ret = -1;
goto cleanup;
}

DPRINT_INFO(BLKVSC_DRV, "blkvsc registered for major %d!!", major);
DPRINT_INFO(BLKVSC_DRV, "blkvsc registered for major %d!!",
major_info.major);

blkdev->gd = alloc_disk(BLKVSC_MINORS);
if (!blkdev->gd) {
Expand All @@ -1046,16 +1023,16 @@ static int blkvsc_probe(struct device *device)
blk_queue_bounce_limit(blkdev->gd->queue, BLK_BOUNCE_ANY);
blk_queue_dma_alignment(blkdev->gd->queue, 511);

blkdev->gd->major = major;
if (devnum == 1 || devnum == 3)
blkdev->gd->major = major_info.major;
if (major_info.index == 1 || major_info.index == 3)
blkdev->gd->first_minor = BLKVSC_MINORS;
else
blkdev->gd->first_minor = 0;
blkdev->gd->fops = &block_ops;
blkdev->gd->events = DISK_EVENT_MEDIA_CHANGE;
blkdev->gd->private_data = blkdev;
blkdev->gd->driverfs_dev = &(blkdev->device_ctx->device);
sprintf(blkdev->gd->disk_name, "hd%c", 'a' + devnum);
sprintf(blkdev->gd->disk_name, "hd%c", 'a' + major_info.index);

blkvsc_do_operation(blkdev, DO_INQUIRY);
blkvsc_do_operation(blkdev, DO_CAPACITY);
Expand Down
18 changes: 9 additions & 9 deletions trunk/drivers/staging/hv/storvsc.c
Original file line number Diff line number Diff line change
Expand Up @@ -629,26 +629,26 @@ int stor_vsc_get_major_info(struct storvsc_device_info *device_info,

if (device_info->path_id) {
major_info->major = 22;
if (!ide1_registered)
if (!ide1_registered) {
major_info->do_register = true;
else {
major_info->do_register = false;
ide1_registered = true;
}
} else
major_info->do_register = false;

if (device_info->target_id)
major_info->index = 3;
else
else
major_info->index = 2;

return 0;
} else {
major_info->major = 3;
if (!ide0_registered)
if (!ide0_registered) {
major_info->do_register = true;
else {
major_info->do_register = false;
ide0_registered = true;
}
} else
major_info->do_register = false;

if (device_info->target_id)
major_info->index = 1;
else
Expand Down

0 comments on commit 64a3fc8

Please sign in to comment.