LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: "K. Y. Srinivasan" <kys@microsoft.com>
To: gregkh@suse.de, linux-kernel@vger.kernel.org,
	devel@linuxdriverproject.org, virtualization@lists.osdl.org
Cc: "K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Hank Janssen <hjanssen@microsoft.com>
Subject: [PATCH 22/22] Staging: hv: Get rid of IDE details from blkvsc_drv.c
Date: Wed,  6 Apr 2011 16:05:22 -0700	[thread overview]
Message-ID: <1302131122-15530-22-git-send-email-kys@microsoft.com> (raw)
In-Reply-To: <1302131122-15530-1-git-send-email-kys@microsoft.com>

Now get rid of IDE details from blkvsc_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>
---
 drivers/staging/hv/blkvsc_drv.c |   55 +++++++++++---------------------------
 drivers/staging/hv/storvsc.c    |   18 ++++++------
 2 files changed, 25 insertions(+), 48 deletions(-)

diff --git a/drivers/staging/hv/blkvsc_drv.c b/drivers/staging/hv/blkvsc_drv.c
index 3229ebc..acc5435 100644
--- a/drivers/staging/hv/blkvsc_drv.c
+++ b/drivers/staging/hv/blkvsc_drv.c
@@ -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 */
-
-		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) {
@@ -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);
diff --git a/drivers/staging/hv/storvsc.c b/drivers/staging/hv/storvsc.c
index e2b3410..85bae5a 100644
--- a/drivers/staging/hv/storvsc.c
+++ b/drivers/staging/hv/storvsc.c
@@ -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
-- 
1.7.4.1


  parent reply	other threads:[~2011-04-06 22:56 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-06 23:03 [RESEND][PATCH 00/22] Staging: hv: Cleanup storage drivers - Phase IV K. Y. Srinivasan
2011-04-06 23:05 ` [PATCH 01/22] Staging: hv: Get rid of blkvsc_check_events() K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 02/22] Staging: hv: Enable blkvsc_ioctl() K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 03/22] Staging: hv: Simplify the code for blkvsc_getgeo() K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 04/22] Staging: hv: Introduce a common function for issuing commands to the device K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 05/22] Staging: hv: Get rid of blkvsc_do_read_capacity() K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 06/22] Staging: hv: Get rid of blkvsc_do_read_capacity16() K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 07/22] Staging: hv: Get rid of the function blkvsc_do_flush() K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 08/22] Staging: hv: Get rid of the state media_not_present K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 09/22] Staging: hv: Get rid of the function blkvsc_revalidate_disk() K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 10/22] Staging: hv: Simplify blkvsc_init_rw() K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 11/22] Staging: hv: Get rid of some DPRINT_INFO() statements K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 12/22] Staging: hv: Get rid of some DPRINT_DBG() calls K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 13/22] Staging: hv: Cleanup blkvsc_remove() K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 14/22] Staging: hv: Cleanup storvsc_remove() K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 15/22] Staging: hv: Get rid of the code to manage removable media K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 16/22] Staging: hv: Get rid of some DPRINT_ERR() calls K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 17/22] Staging: hv: Get rid of an unnecessary check in blkvsc_probe() K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 18/22] Staging: hv: Cleanup blkvsc_open() K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 19/22] Staging: hv: Fix a jump label (Cleanup) in blkvsc_drv K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 20/22] Staging: hv: Fix a jump label (Remove) in blkvsc_drv.c K. Y. Srinivasan
2011-04-06 23:05   ` [PATCH 21/22] Staging: hv: Introduce a function to map channel properties onto block device info K. Y. Srinivasan
2011-04-06 23:05   ` K. Y. Srinivasan [this message]
  -- strict thread matches above, loose matches on Subject: below --
2011-04-04 22:46 [PATCH 00/22] Staging: hv: Cleanup storage drivers - Phase IV K. Y. Srinivasan
2011-04-04 22:47 ` [PATCH 01/22] Staging: hv: Get rid of blkvsc_media_changed() K. Y. Srinivasan
2011-04-04 22:48   ` [PATCH 22/22] Staging: hv: Get rid of IDE details from blkvsc_drv.c K. Y. Srinivasan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1302131122-15530-22-git-send-email-kys@microsoft.com \
    --to=kys@microsoft.com \
    --cc=devel@linuxdriverproject.org \
    --cc=gregkh@suse.de \
    --cc=haiyangz@microsoft.com \
    --cc=hjanssen@microsoft.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=virtualization@lists.osdl.org \
    --subject='Re: [PATCH 22/22] Staging: hv: Get rid of IDE details from blkvsc_drv.c' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).