[6457] in linux-scsi channel archive
Re: NEC 6x external scsi cdrom with kernel 2.2.3?
daemon@ATHENA.MIT.EDU (Jens Axboe)
Tue May 4 08:59:29 1999
Date: Tue, 4 May 1999 13:46:42 +0200
From: Jens Axboe <axboe@image.dk>
To: Tuan Hoang <tuan@optimus.mitre.org>
Cc: linux-scsi@vger.rutgers.edu, linux-kernel@vger.rutgers.edu
In-Reply-To: <Pine.LNX.4.04.9903161118380.2149-100000@optimus.mitre.org>; from Tuan Hoang on Tue, Mar 16, 1999 at 11:25:50AM -0500
--3uo+9/B/ebqu+fSQ
Content-Type: text/plain; charset=us-ascii
On Tue, Mar 16 1999, Tuan Hoang wrote:
> Hi,
>
> I used to have a plextor 12x scsi internal (worked fine) but now I'm
> stuck with an external nec 6x scsi. xcdroast doesn't seem
> to recognize an cd's which I have inside the cdrom. I can
> mount the cdrom on it but I noticed that in dmesg that
> it says that there are illegal requests before hand.
>
> sr1: CDROM (ioctl) reports ILLEGAL REQUEST.
> sr1: CDROM (ioctl) reports ILLEGAL REQUEST.
> sr1: CDROM (ioctl) reports ILLEGAL REQUEST.
> sr1: CDROM (ioctl) reports ILLEGAL REQUEST.
> ISO 9660 Extensions: RRIP_1991A
>
> I'm using an adaptec 2940 ultra pci scsi on a Tyan board with
> an AMD K6-2 350. Also I'm using Red Hat 5.2 with all the updated rpms
> as of this writing and kernel 2.2.3.
> I'm wondering if the illegal requests are what's causing xcdroast to fail.
I recently bumped into this myself. It seems the NEC drive fails the
capabilites probe and the sense check only checks for invalid opcode,
where the probe will result in a invalid field in cdb. Could you try
this patch? Or get 2.2.7-ac1, which included it and lots of other
things for shutting up the SCSI CD-ROM subsystem a bit.
--
* Jens Axboe <axboe@image.dk>
* Linux CD-ROM Maintainer
--3uo+9/B/ebqu+fSQ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="sr_ioctl.diff"
diff -ur --exclude-from /home/axboe/cdrom/exclude-from virgin/drivers/scsi/sr_ioctl.c linux/drivers/scsi/sr_ioctl.c
--- virgin/drivers/scsi/sr_ioctl.c Thu Feb 25 01:27:54 1999
+++ linux/drivers/scsi/sr_ioctl.c Sun Apr 25 18:55:06 1999
@@ -120,9 +122,11 @@
if (!quiet)
printk(KERN_ERR "sr%d: CDROM (ioctl) reports ILLEGAL "
"REQUEST.\n", target);
- if (SCpnt->sense_buffer[12] == 0x20 &&
+ if ((SCpnt->sense_buffer[12] == 0x20 ||
+ SCpnt->sense_buffer[12] == 0x24) &&
SCpnt->sense_buffer[13] == 0x00) {
/* sense: Invalid command operation code */
+ /* or Invalid field in cdb */
err = -EDRIVE_CANT_DO_THIS;
} else {
err = -EINVAL;
--3uo+9/B/ebqu+fSQ--
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.rutgers.edu