Hello, Mark Lord.
Mark Lord wrote:
[--snip--]
I dunno what the new EH does (yet), but the only good way to deal with this
is for the ATA status & error values to be read *and* saved on command
completion,
and then reused by any later code that needs to do detailed sense reporting
or other diagnostics.
Yeap, this is exactly what new EH does. It stores TF in qc->result_tf
on failure and EH/SCSI completion only uses the cached TF stored at the
time of failure.
With NCQ/TCQ, this can be tough to achieve, possibly requiring the LLDD
to drop to legacy mode on error, and capture the values there. Of
course, by then
it's too late to be perfect, as the host controller has probably already
read
and discarded the drive status at least once. (the PDC sata_qstor device
is an exception there -- they save/return failed status during queuing).
With NCQ, the true TF is retrieved via log page 10. EH retrieves it and
stores it in qc->result_tf. The rest is the same.
With PMP, things get more interesting though. :-(
--
tejun
-
: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html