lkml.org 
[lkml]   [2014]   [Dec]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH 3/4] Drivers: scsi: storvsc: Fix a bug in storvsc limits
Date


> -----Original Message-----
> From: devel [mailto:driverdev-devel-bounces@linuxdriverproject.org] On
> Behalf Of K. Y. Srinivasan
> Sent: Tuesday, December 16, 2014 1:22 PM
> To: gregkh@linuxfoundation.org; linux-kernel@vger.kernel.org;
> devel@linuxdriverproject.org; ohering@suse.com;
> jbottomley@parallels.com; hch@infradead.org; linux-scsi@vger.kernel.org
> Subject: [PATCH 3/4] Drivers: scsi: storvsc: Fix a bug in storvsc limits
>
> Commit 4cd83ecdac20d30725b4f96e5d7814a1e290bc7e changed the limits to
> reflect the values on the host. It turns out that WS2008R2 cannot correctly
> handle these new limits. Fix this bug by setting the limits based on the host.
>
> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Reviewed-by: Long Li <longli@microsoft.com>
> ---
> drivers/scsi/storvsc_drv.c | 15 ++++++++++++---
> 1 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index
> a7163c6..fdc5164 100644
> --- a/drivers/scsi/storvsc_drv.c
> +++ b/drivers/scsi/storvsc_drv.c
> @@ -1782,6 +1782,9 @@ static int storvsc_probe(struct hv_device *device,
> bool dev_is_ide = ((dev_id->driver_data == IDE_GUID) ? true : false);
> int target = 0;
> struct storvsc_device *stor_device;
> + int max_luns_per_target;
> + int max_targets;
> + int max_channels;
>
> /*
> * Based on the windows host we are running on, @@ -1795,12
> +1798,18 @@ static int storvsc_probe(struct hv_device *device,
> vmscsi_size_delta = sizeof(struct vmscsi_win8_extension);
> vmstor_current_major = VMSTOR_WIN7_MAJOR;
> vmstor_current_minor = VMSTOR_WIN7_MINOR;
> + max_luns_per_target =
> STORVSC_IDE_MAX_LUNS_PER_TARGET;
> + max_targets = STORVSC_IDE_MAX_TARGETS;
> + max_channels = STORVSC_IDE_MAX_CHANNELS;
> break;
> default:
> sense_buffer_size =
> POST_WIN7_STORVSC_SENSE_BUFFER_SIZE;
> vmscsi_size_delta = 0;
> vmstor_current_major = VMSTOR_WIN8_MAJOR;
> vmstor_current_minor = VMSTOR_WIN8_MINOR;
> + max_luns_per_target = STORVSC_MAX_LUNS_PER_TARGET;
> + max_targets = STORVSC_MAX_TARGETS;
> + max_channels = STORVSC_MAX_CHANNELS;
> break;
> }
>
> @@ -1848,9 +1857,9 @@ static int storvsc_probe(struct hv_device *device,
> break;
>
> case SCSI_GUID:
> - host->max_lun = STORVSC_MAX_LUNS_PER_TARGET;
> - host->max_id = STORVSC_MAX_TARGETS;
> - host->max_channel = STORVSC_MAX_CHANNELS - 1;
> + host->max_lun = max_luns_per_target;
> + host->max_id = max_targets;
> + host->max_channel = max_channels - 1;
> break;
>
> default:
> --
> 1.7.4.1
>
> _______________________________________________
> devel mailing list
> devel@linuxdriverproject.org
> http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


\
 
 \ /
  Last update: 2014-12-30 21:01    [W:0.062 / U:1.948 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site