Thread (70 messages) 70 messages, 4 authors, 2011-07-05

Re: [PATCH 24/40] Staging: hv: storvsc: On I/O get the correct IDE device

From: Christoph Hellwig <hch@infradead.org>
Date: 2011-06-30 19:41:00
Also in: lkml

On Wed, Jun 29, 2011 at 07:39:21AM -0700, K. Y. Srinivasan wrote:
quoted hunk ↗ jump to hunk
We use the channel number to distinguish an IDE device managed by the
storvsc driver from scsi devices. Add code to get the correct
device pointer based on the channel number.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Abhishek Kane <redacted>
Signed-off-by: Hank Janssen <redacted>
---
 drivers/staging/hv/storvsc_drv.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/drivers/staging/hv/storvsc_drv.c b/drivers/staging/hv/storvsc_drv.c
index cf659d7..fcc3f5d 100644
--- a/drivers/staging/hv/storvsc_drv.c
+++ b/drivers/staging/hv/storvsc_drv.c
@@ -517,6 +517,16 @@ static int storvsc_queuecommand_lck(struct scsi_cmnd *scmnd,
 	unsigned int sg_count = 0;
 	struct vmscsi_request *vm_srb;
 
+	if (scmnd->device->channel >= HV_IDE_BASE_CHANNEL) {
+		int channel = scmnd->device->channel;
+
+		/*
+		 * This is an IDE device; get the right dev.
+		 */
+
+		dev = ide_devices[channel - HV_IDE_BASE_CHANNEL];
+	}
So instead of playing games about getting the right hv_device here,
why don't you register one scsi host for each IDE device? libata
does the same for real ATA devices.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help