aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorShaun Tancheff <shaun@tancheff.com>2016-08-21 23:23:21 -0500
committerTejun Heo <tj@kernel.org>2016-08-25 11:26:48 -0400
commit7d36dd00ab8d57134cce86ad4febc2f5bbdf3e72 (patch)
treecd177a7b3259b9cf61a230ecf030d91770e131b7 /drivers/ata
parentlibata: SCT Write Same / DSM Trim (diff)
downloadlinux-dev-7d36dd00ab8d57134cce86ad4febc2f5bbdf3e72.tar.xz
linux-dev-7d36dd00ab8d57134cce86ad4febc2f5bbdf3e72.zip
libata: SCT Write Same handle ATA_DFLAG_PIO
Use non DMA write log when ATA_DFLAG_PIO is set. Signed-off-by: Shaun Tancheff <shaun.tancheff@seagate.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Acked-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/libata-scsi.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 35b1f9e475cc..2f5487f02de1 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -3485,6 +3485,8 @@ static unsigned int ata_scsi_write_same_xlat(struct ata_queued_cmd *qc)
tf->device = ATA_CMD_STANDBYNOW1;
tf->protocol = ATA_PROT_DMA;
tf->command = ATA_CMD_WRITE_LOG_DMA_EXT;
+ if (unlikely(dev->flags & ATA_DFLAG_PIO))
+ tf->command = ATA_CMD_WRITE_LOG_EXT;
}
tf->flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE | ATA_TFLAG_LBA48 |