Re: [usb-storage] [Merging ATA passthru] on integrating SMART/ATA-Security in usb-storage driver

Matthew Dharm
2005-11-05T23:55:29Z

[-- Attachment #1: Type: text/plain, Size: 1942 bytes --]

On Fri, Nov 04, 2005 at 02:49:55PM -0600, James Bottomley wrote:
> On Fri, 2005-11-04 at 12:30 -0800, Matthew Dharm wrote:
> > > What happens if you prevent USB mangling the scsi_level? I think, for
> > > the most part, we would handle 0 in about the same way as we handle 2.
> > > However, we could gate the if around the CDB[1] mangling as
> > >
> > > if (scsi_level != SCSI_UNKNOWN && scsi_level <= SCSI_2)
> > >
> > > which should fix your problem, I think.
> >
> > A long time ago, usb-storage didn't mangle the scsi_level. And almost
> > nothing worked. Without a SCSI level, 6-byte commands get sent; only
> > 10-byte commands will do.
>
> That area of the scsi subsystem has been changed significantly ...
> mainly for usb storage. I don't believe your assertion about
> SCSI_UNKOWN only producing 6 byte CDBs to be correct, the behaviour is
> now governed by two scsi_device flags: use_10_for_rw and use_10_for_ms
> which you can control in slave configure.
>
> Can you just try it with a modern kernel and see if anything still
> breaks?

I just realized this plan has a problem...

The reported SCSI level of a device is mostly garbage, but not always.
I've seen 0, 1, 2, 3, and 0xff all reported. HOWEVER, the reported value
seems independent of what devices have vendor-specific commands (and thus
need the CDB[1] not messed with).

It is an interesting experiment to remove the force-to-SCSI_2 part of the
usb-storage code (on the general principal of "we shouldn't be messing with
the data passed through the driver), but it doesn't solve the original
question of needing a way to pass commands without CDB[1] getting altered.

Matt

--
Matthew Dharm Home: mdharm-usb@one-eyed-alien.net
Maintainer, Linux USB Mass Storage Driver

Pitr! That's brilliant! Funded by Microsoft refunds. What sweet irony!
-- A.J.
User Friendly, 2/15/1999

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]