Skip to contentSkip to conversation

ide-scsi 2.5.10-dj1 compilation failure

PATCH New Douglas Gilbert 1 participant 1 message Apr 27, 2002 SCSI

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ide-scsi 2.5.10-dj1 compilation failure

Christoph Lameter <[email protected]> reported this compile error in lk 2.5.10-dj1:

Quoted 4 lines

ide-scsi.c:837: unknown field abort' specified in initializer ide-scsi.c:837: warning: initialization from incompatible pointer type ide-scsi.c:838: unknown field reset' specified in initializer ide-scsi.c:838: warning: initialization from incompatible pointer type

Below is a patch which attempts to do the right thing:
it wires up the scsi new eh handling and attempts to do a device reset.

It has been tested and oopses in start_request() inside ide.c when a device reset is issued :-) Since the previous ide-scsi logic just ignored scsi error handling, it isn't really a whole lot worse. There is a "fix me" at the appropriate point.

Doug Gilbert

drivers/scsi/ide-scsi.c2510dj1hack renamed from drivers/scsi/ide-scsi.c +14 -8
@@ -804,14 +804,20 @@
 	return 0;
 }
 
-int idescsi_abort (Scsi_Cmnd *cmd)
+/* try to do correct thing for scsi subsystem's new eh */
+int idescsi_device_reset (Scsi_Cmnd *cmd)
 {
-	return SCSI_ABORT_SNOOZE;
-}
+	ide_drive_t *drive = idescsi_drives[cmd->target];
+        struct request req;
 
-int idescsi_reset (Scsi_Cmnd *cmd, unsigned int resetflags)
-{
-	return SCSI_RESET_SUCCESS;
+        ide_init_drive_cmd(&req);
+        req.flags = REQ_SPECIAL;
+/* FIX ME, the next executable line causes on oops in lk 2.5.10-dj1
+ * [code copied from ide-cd's ide_cdrom_reset(), does it work?]
+ */
+        ide_do_drive_cmd(drive, &req, ide_wait);
+
+	return SUCCESS;
 }
 
 int idescsi_bios (Disk *disk, kdev_t dev, int *parm)
@@ -834,8 +840,8 @@
 	info:		idescsi_info,
 	ioctl:		idescsi_ioctl,
 	queuecommand:	idescsi_queue,
-	abort:		idescsi_abort,
-	reset:		idescsi_reset,
+	eh_device_reset_handler: 
+			idescsi_device_reset,
 	bios_param:	idescsi_bios,
 	can_queue:	10,
 	this_id:	-1,