[PATCH 1/2] ieee1394: sbp2: don't prefer MODE SENSE 10

From: Stefan Richter
Date: Thu Sep 07 2006 - 19:38:28 EST


In the old days, sbp2 used to coerce all MODE SENSE commands into the
10 bytes version. When all command set conversions were removed from
sbp2 several months ago, sdev->use_10_for_ms = 1 was added. Meaning,
higher SCSI layers preferred the 10 bytes version but would try the 6
bytes version if the former failed.

Recently, a problem with the 10 bytes version was discovered. An Initio
INIC-1530 firmware accepted the 10 bytes version but replied with bogus
data, showing the HDD incorrectly as write-protected. Since RBC
actually mandates MODE SENSE (6), I checked which version was sent by
Windows XP and Mac OS X 10.3 to an SBP-2 target hosted by Linux --- it
was the 6 bytes version. (Exception: OS X sent the 10 bytes version to
an MMC target. RBC and SBC got MODE SENSE (6).)

Therefore, drop the use_10_for_ms flag from sbp2. Now the upper layers
will try MODE SENSE (6) before MODE SENSE (10) on all SBP-2 devices.

Signed-off-by: Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx>
---
Long story, short patch. This supercedes patch "ieee1394: sbp2:
workaround for write protect bit of Initio firmware".

Index: linux/drivers/ieee1394/sbp2.c
===================================================================
--- linux.orig/drivers/ieee1394/sbp2.c 2006-09-06 23:51:42.000000000 +0200
+++ linux/drivers/ieee1394/sbp2.c 2006-09-07 00:35:09.000000000 +0200
@@ -2529,7 +2529,6 @@ static int sbp2scsi_slave_configure(stru

blk_queue_dma_alignment(sdev->request_queue, (512 - 1));
sdev->use_10_for_rw = 1;
- sdev->use_10_for_ms = 1;

if (sdev->type == TYPE_DISK &&
scsi_id->workarounds & SBP2_WORKAROUND_MODE_SENSE_8)


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/