summaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorTom Yan <tom.ty89@gmail.com>2016-07-13 02:54:11 +0800
committerTejun Heo <tj@kernel.org>2016-07-12 14:58:43 -0400
commitc9cd3504eb03755db8e64f894ccd4ebee59734b7 (patch)
treedf5ffe7888aea54df268715f3b3e613e874d8d74 /drivers/ata
parenta548cc00cf7b0cb3c5b311e0129453f280faed94 (diff)
downloadlinux-0-day-c9cd3504eb03755db8e64f894ccd4ebee59734b7.tar.gz
linux-0-day-c9cd3504eb03755db8e64f894ccd4ebee59734b7.tar.xz
libata-scsi: fix D_SENSE bit relection in control mode page
The bit should always be set to 1 when the requested version of page is "changeable" because we've made it so in ata_mselect_control(). Also, it should always be set to 1 if ATA_DFLAG_D_SENSE is set (when the requested version of page is "current" or "default"). Signed-off-by: Tom Yan <tom.ty89@gmail.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/libata-scsi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index f6888fca4b5ff..9c7c9f28ac23a 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -2451,7 +2451,7 @@ static unsigned int ata_msense_ctl_mode(struct ata_device *dev, u8 *buf,
bool changeable)
{
modecpy(buf, def_control_mpage, sizeof(def_control_mpage), changeable);
- if (changeable && (dev->flags & ATA_DFLAG_D_SENSE))
+ if (changeable || (dev->flags & ATA_DFLAG_D_SENSE))
buf[2] |= (1 << 2); /* Descriptor sense requested */
return sizeof(def_control_mpage);
}