scsi: do not issue SCSI RSOC command to Promise Vtrak E610f
Some devices don't like REPORT SUPPORTED OPERATION CODES and will simply timeout causing sd_mod init to take a very very long time. Introduce BLIST_NO_RSOC scsi scan flag, that stops RSOC from being issued. Add it to Promise Vtrak E610f entry in scsi scan blacklist. Fixes bug #79901 reported at https://bugzilla.kernel.org/show_bug.cgi?id=79901 Fixes: 98dcc2946adb ("SCSI: sd: Update WRITE SAME heuristics") Signed-off-by: Janusz Dziemidowicz <rraptorr@nails.eu.org> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Cc: stable@vger.kernel.org Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
committed by
Christoph Hellwig
parent
884ffee01d
commit
0213436a2c
@@ -222,6 +222,7 @@ static struct {
|
|||||||
{"PIONEER", "CD-ROM DRM-602X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN},
|
{"PIONEER", "CD-ROM DRM-602X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN},
|
||||||
{"PIONEER", "CD-ROM DRM-604X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN},
|
{"PIONEER", "CD-ROM DRM-604X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN},
|
||||||
{"PIONEER", "CD-ROM DRM-624X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN},
|
{"PIONEER", "CD-ROM DRM-624X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN},
|
||||||
|
{"Promise", "VTrak E610f", NULL, BLIST_SPARSELUN | BLIST_NO_RSOC},
|
||||||
{"Promise", "", NULL, BLIST_SPARSELUN},
|
{"Promise", "", NULL, BLIST_SPARSELUN},
|
||||||
{"QUANTUM", "XP34301", "1071", BLIST_NOTQ},
|
{"QUANTUM", "XP34301", "1071", BLIST_NOTQ},
|
||||||
{"REGAL", "CDC-4X", NULL, BLIST_MAX5LUN | BLIST_SINGLELUN},
|
{"REGAL", "CDC-4X", NULL, BLIST_MAX5LUN | BLIST_SINGLELUN},
|
||||||
|
@@ -900,6 +900,12 @@ static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result,
|
|||||||
if (*bflags & BLIST_USE_10_BYTE_MS)
|
if (*bflags & BLIST_USE_10_BYTE_MS)
|
||||||
sdev->use_10_for_ms = 1;
|
sdev->use_10_for_ms = 1;
|
||||||
|
|
||||||
|
/* some devices don't like REPORT SUPPORTED OPERATION CODES
|
||||||
|
* and will simply timeout causing sd_mod init to take a very
|
||||||
|
* very long time */
|
||||||
|
if (*bflags & BLIST_NO_RSOC)
|
||||||
|
sdev->no_report_opcodes = 1;
|
||||||
|
|
||||||
/* set the device running here so that slave configure
|
/* set the device running here so that slave configure
|
||||||
* may do I/O */
|
* may do I/O */
|
||||||
ret = scsi_device_set_state(sdev, SDEV_RUNNING);
|
ret = scsi_device_set_state(sdev, SDEV_RUNNING);
|
||||||
|
@@ -35,4 +35,6 @@
|
|||||||
#define BLIST_SCSI3LUN 0x8000000 /* Scan more than 256 LUNs
|
#define BLIST_SCSI3LUN 0x8000000 /* Scan more than 256 LUNs
|
||||||
for sequential scan */
|
for sequential scan */
|
||||||
#define BLIST_TRY_VPD_PAGES 0x10000000 /* Attempt to read VPD pages */
|
#define BLIST_TRY_VPD_PAGES 0x10000000 /* Attempt to read VPD pages */
|
||||||
|
#define BLIST_NO_RSOC 0x20000000 /* don't try to issue RSOC */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user