summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Hancock <hancockrwd@gmail.com>2009-12-08 20:48:10 -0600
committerJeff Garzik <jgarzik@redhat.com>2009-12-17 01:08:29 -0500
commit9a8fd68b15e7b047678a651b7f7e2f3dcd19d20d (patch)
tree2fcd55dc63893d0c2a0a2f27878b2528596c4d43
parentb2dec48ccaad004fc706352f82725d43369d9bd7 (diff)
downloadop-kernel-dev-9a8fd68b15e7b047678a651b7f7e2f3dcd19d20d.zip
op-kernel-dev-9a8fd68b15e7b047678a651b7f7e2f3dcd19d20d.tar.gz
libata: fix reporting of drained bytes when clearing DRQ
When we drain data from a device to clear DRQ during error recovery, the number of bytes reported as drained is too low by a factor of 2 because the count is actually reporting the number of words drained, not bytes. Fix this. Signed-off-by: Robert Hancock <hancockrwd@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
-rw-r--r--drivers/ata/libata-sff.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index efa8773..741065c 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -2275,7 +2275,7 @@ void ata_sff_drain_fifo(struct ata_queued_cmd *qc)
ap = qc->ap;
/* Drain up to 64K of data before we give up this recovery method */
for (count = 0; (ap->ops->sff_check_status(ap) & ATA_DRQ)
- && count < 32768; count++)
+ && count < 65536; count += 2)
ioread16(ap->ioaddr.data_addr);
/* Can become DEBUG later */
OpenPOWER on IntegriCloud