BTW, while doing the TEST UNIT READY emulation patch for ATA (recently
withdrawn from libata-dev.git#upstream), I found a problem with the
interface that was difficult to get around: TEST UNIT READY simulation
code really wants to look at the result TF of CHECK POWER MODE, even if
ATA_ERR is asserted, before determining whether or not to call that
command an error.
Maybe the EH scheduling could be moved until after ->complete_fn, to
permit ->complete_fn users to manipulate qc->err_mask etc.?
Yeah, right. Device error is a special case. In many cases, devices
can operate without any problem after asserting error and for some
commands error is used to signal certain conditions. I think the least
intrusive way would be a qc flag - ATA_QCFLAG_ALLOW_DEVERR, maybe.
Also, I'm not sure whether EH should kick in when passthru commands fail
with a device error. Maybe libata should just report the error to the
issuer and continue operation?
Good point and agreed -- I definitely think passthru commands want device
errors immediately.
That vastly increases the utility of passthru to be used in test suites
and stuff, where you know a lot of operations should fail, by design.
(i.e. intentionally submitting an invalid command, to test that 'command
aborted' is returned)
Absolutely! Speaking as an 'application programmer', much of the utility
of passthru is lost if the device errors are not immediately returned to
the caller.
Cheers,
Bruce
Jeff
-
To unsubscribe from this list: 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