Re: [PATCH 2.6.18-rc4 1/5] ieee1394: sbp2: workaround for writeprotect bit of Initio firmware

From: Linus Torvalds
Date: Sun Aug 27 2006 - 16:15:22 EST




On Sun, 27 Aug 2006, Stefan Richter wrote:
>
> Yet another mode pages related bug of Initio firmwares was seen.
> INIC-1530 with a firmware by Initio responded with garbage to MODE SENSE
> (10). Some HDDs were therefore incorrectly marked as write protected:
> http://bugzilla.kernel.org/show_bug.cgi?id=6947

Why does sbp2scsi_slave_configure() set "use_10_for_ms" in the first
place?

Almost all the other SCSI code seems to default to using the 6-byte
version, and then only uses the 10-byte version if they have some specific
reason to do so.

I don't think there really is _ever_ any reason to use the 10-byte version
if the 6-byte version is expected to work. Is there?

Examples:

- scsi_add_lun() only sets the 10-byte MS for things that are
black-listed to set it (BLIST_USE_10_BYTE_MS)

In fact, I don't see _anything_ in the source code that actually does
set that, so as far as I can see, scsi_add_lun() _never_ asks to use
the 10-byte modesense.

- libata does set the 10-byte modesense for all SATA devices (but
scsi_lib.c might clear it if we get a bad status back).

- USB devices set the 10-byte version _only_ if it's a non-disk device,
or if the subclass of the device is not SCSI.

Anyway, it would appear that sbp2 is the odd man out in setting up for a
10-byte modesense, and then having to have strange magic rules for
clearing it again.

Is there _really_ any reason to use the 10-byte version at all in the
first place?

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