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 <phillip.wood@xxxxxxxxxxxxx> Signed-off-by: Aaron Lu <aaron.lu@xxxxxxxxx> Tested-by: Dutra Julio <dutra.julio@xxxxxxxxx> Tested-by: Szymon Janc <szymon@xxxxxxxxxxx> Tested-by: Bernd Buschinski <b.buschinski@xxxxxxxxxxxxxx> Cc: <stable@xxxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html