RE: [PATCH 3/4] Drivers: scsi: storvsc: Fix a bug in storvsc limits

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: devel [mailto:driverdev-devel-bounces@xxxxxxxxxxxxxxxxxxxxxx] On
> Behalf Of K. Y. Srinivasan
> Sent: Tuesday, December 16, 2014 1:22 PM
> To: gregkh@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> devel@xxxxxxxxxxxxxxxxxxxxxx; ohering@xxxxxxxx;
> jbottomley@xxxxxxxxxxxxx; hch@xxxxxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx
> 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@xxxxxxxxxxxxx>
Reviewed-by: Long Li <longli@xxxxxxxxxxxxx>
> ---
>  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@xxxxxxxxxxxxxxxxxxxxxx
> http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux