Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e46ee8ef authored by K. Y. Srinivasan's avatar K. Y. Srinivasan Committed by Greg Kroah-Hartman
Browse files

Staging: hv: Get rid of IDE details from blkvsc_drv.c



Now get rid of IDE details from blkvsc_drv.c.

Signed-off-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: default avatarHaiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: default avatarHank Janssen <hjanssen@microsoft.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 1f91bca8
Loading
Loading
Loading
Loading
+16 −39
Original line number Diff line number Diff line
@@ -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);
@@ -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 */
	ret = stor_vsc_get_major_info(&device_info, &major_info);

		if (!ide0_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;

			ide0_registered = 1;
		}
	} else if (blkdev->path == 1) {
		major = IDE1_MAJOR;
		devnum = blkdev->path + blkdev->target + 1; /* 2 or 3 */
	if (major_info.do_register) {
		ret = register_blkdev(major_info.major, major_info.devname);

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

			ide1_registered = 1;
		}
	} 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) {
@@ -1046,8 +1023,8 @@ 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;
@@ -1055,7 +1032,7 @@ static int blkvsc_probe(struct device *device)
	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);
+9 −9
Original line number Diff line number Diff line
@@ -629,12 +629,12 @@ 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
@@ -643,12 +643,12 @@ int stor_vsc_get_major_info(struct storvsc_device_info *device_info,
		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