[PATCH] libata-eh: implement new EH
authorTejun Heo <htejun@gmail.com>
Mon, 15 May 2006 11:58:22 +0000 (20:58 +0900)
committerTejun Heo <htejun@gmail.com>
Mon, 15 May 2006 11:58:22 +0000 (20:58 +0900)
commit022bdb075b9e1f224088a0b268de56268d7bc5b6
tree05878e28202f0a86bdcc32ae5d995db9f15042da
parentf3e81b19aac23c0e8c55d5961324ef7de44c23bb
[PATCH] libata-eh: implement new EH

Implement new EH.  The exported interface is ata_do_eh() which is to
be called from ->error_handler and performs the following steps to
recover the failed port.

ata_eh_autopsy() : analyze SError/TF, determine the cause of failure
   and required recovery actions and record it in
   ap->eh_context
ata_eh_report()  : report the failure to user
ata_eh_recover() : perform recovery actions described in ap->eh_context
ata_eh_finish()  : finish failed qcs

LLDDs can customize error handling by modifying eh_context before
calling ata_do_eh() or, if necessary, doing so inbetween each major
steps by calling each step explicitly.

Signed-off-by: Tejun Heo <htejun@gmail.com>
drivers/scsi/libata-core.c
drivers/scsi/libata-eh.c
include/linux/libata.h