summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin K. Petersen <martin.petersen@oracle.com>2015-05-19 23:44:17 (GMT)
committerTejun Heo <tj@kernel.org>2015-05-21 21:52:55 (GMT)
commiteab6ee1ce3c4678224d70338134f7a02005768cb (patch)
treed80fbf93e56fd1cf8a4255ccb6883552cf636219
parent6ec0a86c645be3fce7ade42f165a6a417c3503b1 (diff)
downloadlinux-eab6ee1ce3c4678224d70338134f7a02005768cb.tar.xz
libata: Fix regression when the NCQ Send and Receive log page is absent
Commit 5d3abf8ff67f ("libata: Fall back to unqueued READ LOG EXT if the DMA variant fails") allowed us to fall back to the unqueued READ LOG variant if the queued version failed. However, if the device did not support the page at all we would end up looping due to a merge snafu. Ensure we only take the fallback path once. Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Reported-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Tested-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
-rw-r--r--drivers/ata/libata-eh.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 2893563..2b370ee 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -1521,6 +1521,7 @@ retry:
} else {
tf.command = ATA_CMD_READ_LOG_EXT;
tf.protocol = ATA_PROT_PIO;
+ dma = false;
}
tf.lbal = log;
tf.lbam = page;