> -----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