diff options
author | Tejun Heo <htejun@gmail.com> | 2006-05-15 07:58:12 -0400 |
---|---|---|
committer | Tejun Heo <htejun@gmail.com> | 2006-05-15 07:58:12 -0400 |
commit | ad9e27624479bd167dd7eac0cea4bb3ad13bc926 (patch) | |
tree | 47b863c91509a29c9b0f760faa52d60a95272ba6 /include/linux | |
parent | dafadcde8d4dc5ea8c742faa7ff4403336b542b8 (diff) |
[PATCH] libata-eh-fw: update ata_scsi_error() for new EH
Update ata_scsi_error() for new EH. ata_scsi_error() is responsible
for claiming timed out qcs and invoking ->error_handler in safe and
synchronized manner. As the state of the controller is unknown if a
qc has timed out, the port is frozen in such cases.
Note that ata_scsi_timed_out() isn't used for new EH. This is because
a timed out qc cannot be claimed by EH without freezing the port and
freezing the port in ata_scsi_timed_out() results in unnecessary
abortion of other active qcs. ata_scsi_timed_out() can be removed
once all drivers are converted to new EH.
While at it, add 'TODO: kill' comments to old EH functions.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/libata.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index 6758b4d374a0..5ad50163c8ef 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -225,6 +225,9 @@ enum { | |||
225 | ATA_PORT_PRIMARY = (1 << 0), | 225 | ATA_PORT_PRIMARY = (1 << 0), |
226 | ATA_PORT_SECONDARY = (1 << 1), | 226 | ATA_PORT_SECONDARY = (1 << 1), |
227 | 227 | ||
228 | /* max repeat if error condition is still set after ->error_handler */ | ||
229 | ATA_EH_MAX_REPEAT = 5, | ||
230 | |||
228 | /* how hard are we gonna try to probe/recover devices */ | 231 | /* how hard are we gonna try to probe/recover devices */ |
229 | ATA_PROBE_MAX_TRIES = 3, | 232 | ATA_PROBE_MAX_TRIES = 3, |
230 | }; | 233 | }; |