aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libata-scsi.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2006-03-05 01:29:09 -0500
committerJeff Garzik <jeff@garzik.org>2006-03-11 17:57:20 -0500
commit86e45b6bd6900c4a0b3666fb18b46e215f775c4f (patch)
tree5b86ebd0b0b17d05bdfdd07b7683f7348577b52a /drivers/scsi/libata-scsi.c
parentd7fc3ca1cd0ecce82263299c6b1631fc83b0ec79 (diff)
[PATCH] libata: implement port_task
Implement port_task. LLDD's can schedule a function to be executed with context after specified delay. libata core takes care of synchronization against EH. This is generalized form of pio_task and packet_task which are tied to PIO hsm implementation. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/scsi/libata-scsi.c')
-rw-r--r--drivers/scsi/libata-scsi.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c
index d0bd94abb413..ccedb4536977 100644
--- a/drivers/scsi/libata-scsi.c
+++ b/drivers/scsi/libata-scsi.c
@@ -785,6 +785,8 @@ int ata_scsi_error(struct Scsi_Host *host)
785 WARN_ON(ata_qc_from_tag(ap, ap->active_tag) == NULL); 785 WARN_ON(ata_qc_from_tag(ap, ap->active_tag) == NULL);
786 spin_unlock_irqrestore(&ap->host_set->lock, flags); 786 spin_unlock_irqrestore(&ap->host_set->lock, flags);
787 787
788 ata_port_flush_task(ap);
789
788 ap->ops->eng_timeout(ap); 790 ap->ops->eng_timeout(ap);
789 791
790 WARN_ON(host->host_failed || !list_empty(&host->eh_cmd_q)); 792 WARN_ON(host->host_failed || !list_empty(&host->eh_cmd_q));