Skip to contentSkip to conversation

ide-scsi 2.5.10-dj1 compilation failure

PATCH In review Douglas Gilbert 2 participants 2 messages 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,
#1 lore raw

Uz.ytkownik Douglas Gilbert napisa?:

Quoted 13 lines

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.

Quoted 7 lines

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

Well the "hidden" queueing of some commands on the device request queue is what is getting you here. It's subject to be gone, so this problem will be resolved.