]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
libata: Fix regression when the NCQ Send and Receive log page is absent
authorMartin K. Petersen <martin.petersen@oracle.com>
Tue, 19 May 2015 23:44:17 +0000 (19:44 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Aug 2015 16:29:11 +0000 (09:29 -0700)
commit eab6ee1ce3c4678224d70338134f7a02005768cb upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/ata/libata-eh.c

index f0931742a4392173a7933e4443c30c5cbe040853..7465031a893c60c9e61f2c911abf218b39c81d2e 100644 (file)
@@ -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;