aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorJames Bottomley <james.bottomley@steeleye.com>2004-06-17 23:58:05 -0500
committerJames Bottomley <jejb@mulgrave.(none)>2004-06-17 23:58:05 -0500
commitf57d08d130ddc17432a19b22ea1be40a02f577d9 (patch)
tree4b94e013d8eddf4f73aa4c692ff9a008bb183fd9 /Documentation
parentf0378b9dc202e055ecf40b99d3ed7835d53404aa (diff)
downloadhistory-f57d08d130ddc17432a19b22ea1be40a02f577d9.tar.gz
[PATCH] SCSI Flexible timout intfrastructure
The object of this infrastructure is to give HBAs early warning that error handling is about to happen and also provide them with the opportunity to do something about it. It introduces the extra template callback: eh_timed_out() which scsi_times_out() will call if it is populated to notify the LLD that an outstanding command took a timeout. There are three possible returns: EH_HANDLED: I've fixed the problem, please complete the command for me (as soon as the timer fires, scsi_done will do nothing, so the timer itself will call a special version of scsi_done that doesn't check the timer). EH_NOT_HANDLED: Invoke error recovery as normal EH_RESET_TIMER: The command will complete, reset the timer to its original value and start it ticking again. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com> Based on work by Christoph Hellwig and Luben Tuikov
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/scsi/scsi_mid_low_api.txt27
1 files changed, 27 insertions, 0 deletions
diff --git a/Documentation/scsi/scsi_mid_low_api.txt b/Documentation/scsi/scsi_mid_low_api.txt
index eda7ce53db9d09..c3407f6693a25c 100644
--- a/Documentation/scsi/scsi_mid_low_api.txt
+++ b/Documentation/scsi/scsi_mid_low_api.txt
@@ -827,6 +827,7 @@ The interface functions are listed below in alphabetical order.
Summary:
bios_param - fetch head, sector, cylinder info for a disk
detect - detects HBAs this driver wants to control
+ eh_timed_out - notify the host that a command timer expired
eh_abort_handler - abort given command
eh_bus_reset_handler - issue SCSI bus reset
eh_device_reset_handler - issue SCSI device reset
@@ -895,6 +896,32 @@ Details:
/**
+ * eh_timed_out - The timer for the command has just fired
+ * @scp: identifies command timing out
+ *
+ * Returns:
+ *
+ * EH_HANDLED: I fixed the error, please complete the command
+ * EH_RESET_TIMER: I need more time, reset the timer and
+ * begin counting again
+ * EH_NOT_HANDLED Begin normal error recovery
+
+ *
+ * Locks: None held
+ *
+ * Calling context: interrupt
+ *
+ * Notes: This is to give the LLD an opportunity to do local recovery.
+ * This recovery is limited to determining if the outstanding command
+ * will ever complete. You may not abort and restart the command from
+ * this callback.
+ *
+ * Optionally defined in: LLD
+ **/
+ int eh_timed_out(struct scsi_cmnd * scp)
+
+
+/**
* eh_abort_handler - abort command associated with scp
* @scp: identifies command to be aborted
*