ata_dma_enabled should check if device is either using multi word DMA
or ultra DMA instead of checking 0xff, as dma_mode 0 is not a valid dma
mode either.
This patch fixes the following bug:
https://bugzilla.kernel.org/show_bug.cgi?id=49151
Reported-by: Phillip Wood <redacted>
Signed-off-by: Aaron Lu <redacted>
Tested-by: Dutra Julio <redacted>
Tested-by: Szymon Janc <redacted>
Tested-by: Bernd Buschinski <redacted>
Cc: <stable@kernel.org>
---
include/linux/libata.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 77eeeda..2444695 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -1617,7 +1617,7 @@ static inline int ata_using_udma(struct ata_device *adev)
static inline int ata_dma_enabled(struct ata_device *adev)
{
- return (adev->dma_mode == 0xFF ? 0 : 1);
+ return ata_using_mwdma(adev) || ata_using_udma(adev);
}
/**************************************************************************--
1.8.0.1.2.gd1eded4