Devices not supporting read-6....
Robin T. Miller
Robin.Miller en compaq.com
Sab Ene 22 10:08:13 CST 2000
Hi Alan,
I'm attaching mail I exchanged with Jens Axboe... apparently, I forgot to
copy linux-scsi on my response.
There are other appJens approaches, but Jen's should work Ok.
Sorry, I don't have his patches.
Regards,
Robin
Alan Cox wrote:
>
> > If you read the SCSI MultiMedia spec, you'll notice 6-byte Read/Write commands
> > are not mandatory (true for ATAPI & SCSI). So, I'd say the drivers need to be updated.
>
> Not the drivers fortunately - just the sd.c code that dispatches commands. If
> its now allowed then it shouldnt be a blacklist item , it has to get handled
> properly.
>
> Is there a "supports read-10" flag anywhere helpful in the drive data pages ?
>
> Alan
================================================================================
Subject: Re: ten byte writes/reads
Date: Thu, 02 Dec 1999 16:27:59 -0500
From: "Robin T. Miller" <Robin.Miller en compaq.com>
Organization: Data Products Group (DPG)
To: Jens Axboe <axboe en image.dk>
References: 1
Hi All,
I think it's pretty safe to assume SCSI disks will accept 10-byte Read/Write
CDB's. In fact, I reviewed several O/S drivers recently, and both NT and SCO
only use 10 byte CDB's.
I'm not surprised the 6-byte Write didn't work with your DVD-RAM, since 10-byte
CDB's are mandatory for Optical and DVD's, byte 6-byte CDB's are optional.
Sure, reverting to a 6-byte request can be done on Illegal Request sense, but
unless you have some very old SCSI-1/CCS drives, I'm not sure you'll see a
problem.
Cheers,
Robin
Jens Axboe wrote:
>
> Hi,
>
> After having battled with a DVD-RAM that does not (properly
> at least) support WRITE_6 for some time, I started looking at
> the 10/6 byte command logic in sd. It is not clear what the
> intended effect of the 'ten' flag is.
>
> sd_init_onedisk() unconditionally sets the 'ten' flag and
> requests are queued as READ_10/WRITE_10 if it is set _and_
> we want to transfer more than 256 blocks or go beyond
> a block size that fits in the _6 variants.
>
> The overhead of using a 10 byte command data block versus
> the 6 byte equivalent is not worth worrying about IMHO.
> Therefore I propose the following change to be made:
>
> Always use WRITE_10/READ_10 when the 'ten' flag is set.
> For devices that do not support it, the behaviour will
> be to reverse to WRITE_6/READ_6 upon the first failed
> read/write. An alternative solution would be to probe
> the device in sd_init_onedisk() and set the flag conditionally.
>
> Attached patch is against 2.2.14-pre9.
>
> --
> * Jens Axboe <axboe en image.dk>
> * Linux CD-ROM Maintainer
> * http://www.kernel.dk
>
> --------------------------------------------------------------------------------
>
> sd_ten.diffName: sd_ten.diff
> Type: Plain Text (text/plain)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo en vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
Más información sobre la lista de distribución Ayuda