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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to