On Mon, 2007-04-30 at 11:46 -0700, David Miller wrote: > The new ESP driver in esp_scsi.c is a good example of doing at least > SAVE and RESTORE pointer management properly. I plan to add the > necessary MODIFY bits soon. > > I think it's important to get this right because a target can use > this to recover from internal errors during an I/O, in order to > transfer some block of the data again. > > I am pretty sure that the firmware in the aic7xxx, sym53c8xx, et > al. have extensive code to handle this completely. That's why there > aren't any good driver examples, not because it isn't being handled, > but because all the logic and important details are done in the scsi > adapter firmware. You're right. I can only speak sym53c8xx firmware code. What that does is to save and restore the pointer address correctly ... it does have a nice snippet anticipating the save data pointer before a disconnect, but I think it's not mandatory. The Modify Data Pointers is actually handled outside of the firmware in sym_hipd.c:sym_modify_dp(). This is what you need to implement to allow a device to rewind after an error. James - To unsubscribe from this list: 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