diff options
author | Martin K. Petersen <martin.petersen@oracle.com> | 2013-04-24 21:19:47 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-06-24 13:00:10 -0700 |
commit | 56f2a8016e0ab54de8daaac3df4712cad0fcef2e (patch) | |
tree | 5464d103f595effb8c784d22e8f77a0243a75b41 /drivers/scsi/scsi_scan.c | |
parent | c3a634bf78242177fba9c85deb709e7b63ed0ef1 (diff) | |
download | lwn-56f2a8016e0ab54de8daaac3df4712cad0fcef2e.tar.gz lwn-56f2a8016e0ab54de8daaac3df4712cad0fcef2e.zip |
[SCSI] Workaround for disks that report bad optimal transfer length
Not all disks fill out the VPD pages correctly. Add a blacklist flag
that allows us ignore the SBC-3 VPD pages for a given device. The
BLIST_SKIP_VPD_PAGES flag triggers our existing skip_vpd_pages
scsi_device parameter to bypass VPD scanning.
Also blacklist the offending Seagate drive model.
Reported-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/scsi_scan.c')
-rw-r--r-- | drivers/scsi/scsi_scan.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 852915a08465..307a81137607 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c @@ -926,6 +926,9 @@ static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result, sdev->eh_timeout = SCSI_DEFAULT_EH_TIMEOUT; + if (*bflags & BLIST_SKIP_VPD_PAGES) + sdev->skip_vpd_pages = 1; + transport_configure_device(&sdev->sdev_gendev); if (sdev->host->hostt->slave_configure) { |