On Thu, Jul 27, 2006 at 03:53:10PM -0700, Andrew Vasquez wrote: > On Thu, 27 Jul 2006, Vladislav Bolkhovitin wrote: > > > Also I've found that without this patch qla2xxx_eh_device_reset() > > refuses to reset the device during normal error recovery carrying out by > > SCSI mid-layer as well. I didn't do deeper investigations though, with > > this patch the error recovery works as expected. > > The only way I see this happening is if the command completed after > the abort handler FAILED and before the device reset handler executed. > Possibly. > > During normal EH routines the driver still hold a reference to the > command, so the sp should be valid. > > In any case, those codes (referencing SP) are residual left-overs from > our 'standard' non-upstream driver, and should be clensed. But it shows a bad problem in the design of those external reset ioctls. Unlike normal EH commands they never went through ->queuecommand so don't have private data allocated or other setup done. This can have pretty serious consequences. We probably can't fix it short from redoing the whole EH entry points, but it at least needs to be documented very carefully. Anyone volunteering to write up the documentation? - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html