Darrick J. Wong wrote:
This patch adds a new field, lldd_task, to ata_queued_cmd so that libata
users such as libsas can associate some data with a qc. The particular
ambition with this patch is to associate a sas_task with a qc; that way,
if libata decides to timeout a command, we can come back (in
sas_ata_post_internal) and abort the sas task.
Can you rename ->lldd_task to something more generic, say,
->low/driver_private_data and add a comment to explain who owns it?
One question remains: Is it necessary to reset the phy on error, or will
the libata error handler take care of it? (Assuming that one is written,
of course.) This patch, as it is today, works well enough to clean
things up when an ATA device probe attempt fails halfway through the probe,
though I'm not sure this is always the right thing to do.
->post_internal_cmd is only responsible for putting the controller into
a sane state and perform minimal diagnosis of the error if command has
failed (setting AC_ERR_*). Sane states are...
1. the controller is ready for further commands, if possible.
2. the controller is not processing the failed command, if #1 is not
possible. IOW, DMA engine is stopped (or any other activity which pokes
memory) and the port is frozen (IRQ muted).
libata EH will take care of resetting, revalidating / reconfiguring
attached ATA device using the provided reset methods, so no need for
phy_reset in post_internal_cmd.
--
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html