Tejun Heo wrote:
Jeff Garzik wrote:
Tejun Heo wrote:
Some commands need post-processing after successful completion. This
was done in ata_scsi_qc_complete() till now but command post
processing doesn't belong to SAT layer. Move them to
__ata_qc_complete() and, while at it, restructure a bit to ease adding
post-processing for other commands.
Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
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)
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