--- scsi.c	Thu May  4 21:34:42 1995
+++ linux/drivers/scsi/scsi.c	Thu May  4 21:33:33 1995
@@ -35,6 +35,9 @@
 
 #undef USE_STATIC_SCSI_MEMORY
 
+/* Change this if your acb-40xx lives at a SCSI ID other than zero. */
+#define ACB_40XX_ID    0
+
 /*
 static const char RCSid[] = "$Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/scsi.c,v 1.5 1993/09/24 12:45:18 drew Exp drew $";
 */
@@ -418,20 +421,40 @@
 	  SCpnt->request.dev = 0xffff; /* Mark not busy */
 	  SCpnt->cmd_len = 0;
 
-	  scsi_do_cmd (SCpnt, (void *)  scsi_cmd, (void *) scsi_result,
-		       256,  scan_scsis_done, SCSI_TIMEOUT, 3);
+	  /* Avoid reserved device for acb-40XX with no inquiry command */
+	  if (dev != ACB_40XX_ID) {
 
-	  if (current == task[0])
-	      while (SCpnt->request.dev != 0xfffe) barrier();
-	  else if (SCpnt->request.dev != 0xfffe) {
-	      struct semaphore sem = MUTEX_LOCKED;
+	     scsi_do_cmd (SCpnt, (void *)  scsi_cmd, (void *) scsi_result,
+			  256,  scan_scsis_done, SCSI_TIMEOUT, 3);
 
-	      SCpnt->request.sem = &sem;
-	      down(&sem);
+	     if (current == task[0])
+		while (SCpnt->request.dev != 0xfffe) barrier();
+	     else if (SCpnt->request.dev != 0xfffe) {
+		struct semaphore sem = MUTEX_LOCKED;
+
+		SCpnt->request.sem = &sem;
+		down(&sem);
+
+		/* Hmm.. Have to ask about this one */
+		while (SCpnt->request.dev != 0xfffe) schedule();
+	     }
+	  }
 
-	      /* Hmm.. Have to ask about this one */
-	      while (SCpnt->request.dev != 0xfffe) schedule();
-	      }
+	  else {        /* Fake INQUIRY result for this device */
+		SCpnt->result = 0;
+		scsi_result[0] = TYPE_DISK;
+		scsi_result[1] = 0;     /* removable bit + dev qualifier */
+		scsi_result[2] = 1;     /* ISO=0, ECMA=0, ANSI=1 */
+		scsi_result[3] = 0;     /* SCSI-2 reserved */
+		scsi_result[4] = 31;    /* length of additional info */
+		scsi_result[5] = 0;     /* SCSI-2 reserved */
+		scsi_result[6] = 0;     /* SCSI-2 reserved */
+		scsi_result[7] = 0;     /* SCSI-2 device info */
+
+		strcpy(&scsi_result[8],"ADAPTEC ");
+		strcpy(&scsi_result[16],"ACB-40XX        ");
+		strcpy(&scsi_result[32],"1.00");
+	  }
 
 	  the_result = SCpnt->result;
 
