[PATCH] scsi: devinfo: Add BLIST_SKIP_IO_HINTS for Iomega ZIP

Florian Fuchs posted 1 patch 1 month, 2 weeks ago
There is a newer version of this series
drivers/scsi/scsi_devinfo.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] scsi: devinfo: Add BLIST_SKIP_IO_HINTS for Iomega ZIP
Posted by Florian Fuchs 1 month, 2 weeks ago
The Iomega ZIP 100 (Z100P2) can't process IO Advice Hints Grouping mode
page query. It immediately switches to the status phase 0xb8 after
receiving the subpage code 0x05 of MODE_SENSE_10 command, which fails
imm_out() and turns into DID_ERROR of this command, which leads to
unusable device. This was tested with an Iomega ZIP 100 (Z100P2)
connected with a StarTech PEX1P2 AX99100 PCIe parallel port card.

Prior to this fix, Test Unit Ready fails and the drive can't be used:
        IMM: returned SCSI status b8
        sd 7:0:6:0: [sdh] Test Unit Ready failed: Result: hostbyte=0x01 driverbyte=DRIVER_OK

Signed-off-by: Florian Fuchs <fuchsfl@gmail.com>
---
The processed CDB, where 0xb8 was set after subpage code 0x05:
	5a 08 0a 05 00 00 00 02 00 00

Prior error message, no partitions found and Test Unit Ready failed:

	imm: Found device at ID 6, Attempting to use EPP 8 bit
	imm: Communication established at 0xd010 with ID 6 using EPP 8 bit
	scsi host7: Iomega VPI2 (imm) interface
	scsi 7:0:6:0: Direct-Access     IOMEGA   ZIP 100          P.04 PQ: 0 ANSI: 2
	sd 7:0:6:0: Power-on or device reset occurred
	sd 7:0:6:0: Power-on or device reset occurred
	sd 7:0:6:0: [sdh] 196608 512-byte logical blocks: (101 MB/96.0 MiB)
	sd 7:0:6:0: [sdh] Write Protect is off
	sd 7:0:6:0: [sdh] Mode Sense: 25 00 00 08
	sd 7:0:6:0: [sdh] Cache data unavailable
	sd 7:0:6:0: [sdh] Assuming drive cache: write through
	IMM: returned SCSI status b8
	sd 7:0:6:0: [sdh] Test Unit Ready failed: Result: hostbyte=0x01 driverbyte=DRIVER_OK
	sdh: detected capacity change from 196608 to 0
	sd 7:0:6:0: [sdh] Attached SCSI removable disk

Ater this fix, the partition is detected and the drive works like we deserve:

	imm: Found device at ID 6, Attempting to use EPP 8 bit
	imm: Communication established at 0xd010 with ID 6 using EPP 8 bit
	scsi host7: Iomega VPI2 (imm) interface
	scsi 7:0:6:0: Direct-Access     IOMEGA   ZIP 100          P.04 PQ: 0 ANSI: 2
	sd 7:0:6:0: Power-on or device reset occurred
	sd 7:0:6:0: Power-on or device reset occurred
	sd 7:0:6:0: [sdh] 196608 512-byte logical blocks: (101 MB/96.0 MiB)
	sd 7:0:6:0: [sdh] Write Protect is off
	sd 7:0:6:0: [sdh] Mode Sense: 25 00 00 08
	sd 7:0:6:0: [sdh] Cache data unavailable
	sd 7:0:6:0: [sdh] Assuming drive cache: write through
	 sdh: sdh4
	sd 7:0:6:0: [sdh] Attached SCSI removable disk
---
 drivers/scsi/scsi_devinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/scsi_devinfo.c b/drivers/scsi/scsi_devinfo.c
index 0dada89d8d99..68a992494b12 100644
--- a/drivers/scsi/scsi_devinfo.c
+++ b/drivers/scsi/scsi_devinfo.c
@@ -190,7 +190,7 @@ static struct {
 	{"IBM", "2076", NULL, BLIST_NO_VPD_SIZE},
 	{"IBM", "2105", NULL, BLIST_RETRY_HWERROR},
 	{"iomega", "jaz 1GB", "J.86", BLIST_NOTQ | BLIST_NOLUN},
-	{"IOMEGA", "ZIP", NULL, BLIST_NOTQ | BLIST_NOLUN},
+	{"IOMEGA", "ZIP", NULL, BLIST_NOTQ | BLIST_NOLUN | BLIST_SKIP_IO_HINTS},
 	{"IOMEGA", "Io20S         *F", NULL, BLIST_KEY},
 	{"INSITE", "Floptical   F*8I", NULL, BLIST_KEY},
 	{"INSITE", "I325VM", NULL, BLIST_KEY},

base-commit: 2f38fd99c0004676d835ae96ac4f3b54edc02c82
-- 
2.43.0
Re: [PATCH] scsi: devinfo: Add BLIST_SKIP_IO_HINTS for Iomega ZIP
Posted by Martin K. Petersen 1 month, 2 weeks ago
Hi Florian!

> The Iomega ZIP 100 (Z100P2) can't process IO Advice Hints Grouping
> mode page query. It immediately switches to the status phase 0xb8
> after receiving the subpage code 0x05 of MODE_SENSE_10 command, which
> fails imm_out() and turns into DID_ERROR of this command, which leads
> to unusable device. This was tested with an Iomega ZIP 100 (Z100P2)
> connected with a StarTech PEX1P2 AX99100 PCIe parallel port card.

Great work! Applied to 7.0/scsi-fixes, thanks!

-- 
Martin K. Petersen