]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
libata-scsi: fix checking of DMA state
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Tue, 12 Oct 2021 06:27:45 +0000 (08:27 +0200)
committerDamien Le Moal <damien.lemoal@wdc.com>
Tue, 12 Oct 2021 08:46:48 +0000 (17:46 +0900)
Checking if DMA is enabled should be done via the
ata_dma_enabled helper function, since the init state
0xff indicates disabled.
Change based on code review, not tested due to lack of hardware.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
drivers/ata/libata-scsi.c

index 1fb4611f7eeb9e291471b9c6947610f65236f775..0adea33f2137af5b1a42b859439a16f8bb2f0e6f 100644 (file)
@@ -2981,7 +2981,7 @@ static unsigned int ata_scsi_pass_thru(struct ata_queued_cmd *qc)
        ata_qc_set_pc_nbytes(qc);
 
        /* We may not issue DMA commands if no DMA mode is set */
-       if (tf->protocol == ATA_PROT_DMA && dev->dma_mode == 0) {
+       if (tf->protocol == ATA_PROT_DMA && !ata_dma_enabled(dev)) {
                fp = 1;
                goto invalid_fld;
        }
@@ -3131,7 +3131,7 @@ static unsigned int ata_scsi_write_same_xlat(struct ata_queued_cmd *qc)
        u8 unmap = cdb[1] & 0x8;
 
        /* we may not issue DMA commands if no DMA mode is set */
-       if (unlikely(!dev->dma_mode))
+       if (unlikely(!ata_dma_enabled(dev)))
                goto invalid_opcode;
 
        /*