* Matthew Dharm <[EMAIL PROTECTED]> [040329 22:14]:

You can probably work around this device bug by editing
linux/drivers/scsi/sd.c to remove all attempt to send prevent/allow
commands -- IIRC, that's only two places in the file, tho I don't recall
exactly where they are at the moment.

Sorry, the patch goes this time.



-- I'll pretend to trust you if you'll pretend to trust me.

Javier Marcet <[EMAIL PROTECTED]>
--- linux/include/scsi/scsi_devinfo.h.orig      2004-01-13 04:03:19.000000000 +0100
+++ linux/include/scsi/scsi_devinfo.h   2004-01-13 04:12:19.509266640 +0100
@@ -19,4 +19,5 @@
 #define BLIST_MS_SKIP_PAGE_08  0x2000  /* do not send ms page 0x08 */
 #define BLIST_MS_SKIP_PAGE_3F  0x4000  /* do not send ms page 0x3f */
 #define BLIST_USE_10_BYTE_MS   0x8000  /* use 10 byte ms before 6 byte ms */
+#define BLIST_NORMB                0x10000 /* Known to be not removable */
 #endif
--- linux/drivers/scsi/scsi_scan.c.orig 2004-01-13 04:03:19.000000000 +0100
+++ linux/drivers/scsi/scsi_scan.c      2004-01-13 04:13:07.728936136 +0100
@@ -536,7 +536,8 @@
                sdev->online = FALSE;
        }
 
-       sdev->removable = (0x80 & inq_result[1]) >> 7;
+       sdev->removable = (((0x80 & inq_result[1]) >> 7) &&
+               !(*bflags & BLIST_NORMB));
        sdev->lockable = sdev->removable;
        sdev->soft_reset = (inq_result[7] & 1) && ((inq_result[3] & 7) == 2);
 
--- linux/drivers/scsi/scsi_devinfo.c.orig      2004-01-13 04:03:19.000000000 +0100
+++ linux/drivers/scsi/scsi_devinfo.c   2004-01-13 04:13:40.591940200 +0100
@@ -183,6 +183,7 @@
        {"SGI", "TP9500", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
        {"MYLEX", "DACARMRB", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
        {"XYRATEX", "RS", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
+       {"iRiver", "iFP Mass Driver", NULL, BLIST_NORMB},
        { NULL, NULL, NULL, 0 },
 };
 

Reply via email to