Skip to contentSkip to conversation

correct sym2 error handling functions

PATCH New James Bottomley 1 participant 1 message Mar 21, 2004

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 correct sym2 error handling functions

The sym2 driver has a nasty thinko in its error handling that looks to have been present from day one.

The problem is that if it decides that the command it is requested to handle isn't in its internal queues, it simply returns FAILED. This means that the eh will offline the device if we get into this state.

It's very easy to trip this, because a timed out command may complete before the eh activates, and the driver would then not find the command on the bus.

The rules are:

If requested to abort a command that's not present on the bus, you may return SUCCESS (*not* FAILED), but devices must obey all other error handler requests (device, bus and host reset) regardless of whether they find the command or not.

James

===== drivers/scsi/sym53c8xx_2/sym_glue.c 1.44 vs edited =====

drivers/scsi/sym53c8xx_2/sym_glue.c +0 -1
@@ -924,7 +924,6 @@
 	switch(to_do) {
 	default:
 	case SYM_EH_DO_IGNORE:
-		goto finish;
 		break;
 	case SYM_EH_DO_WAIT:
 		init_MUTEX_LOCKED(&ep->sem);