summaryrefslogtreecommitdiff
path: root/drivers/ata
diff options
context:
space:
mode:
authorShaun Tancheff <shaun@tancheff.com>2016-08-22 07:23:21 +0300
committerTejun Heo <tj@kernel.org>2016-08-25 18:26:48 +0300
commit7d36dd00ab8d57134cce86ad4febc2f5bbdf3e72 (patch)
treecd177a7b3259b9cf61a230ecf030d91770e131b7 /drivers/ata
parentef2d7392c4ece5c3cd12a6c7ca9366cd8f189aff (diff)
downloadlinux-7d36dd00ab8d57134cce86ad4febc2f5bbdf3e72.tar.xz
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 |