From: Damien Le Moal <dlemoal@kernel.org>
To: linux-ide@vger.kernel.org, Niklas Cassel <cassel@kernel.org>,
linux-scsi@vger.kernel.org,
"Martin K . Petersen" <martin.petersen@oracle.com>
Subject: [PATCH 1/3] ata: libata-scsi: Fix ata_msense_control_ata_feature()
Date: Wed, 16 Apr 2025 17:42:36 +0900 [thread overview]
Message-ID: <20250416084238.258169-2-dlemoal@kernel.org> (raw)
In-Reply-To: <20250416084238.258169-1-dlemoal@kernel.org>
For the ATA features subpage of the control mode page, the T10 SAT-6
specifications state that:
For a MODE SENSE command, the SATL shall return the CDL_CTRL field value
that was last set by an application client.
However, the function ata_msense_control_ata_feature() always sets the
CDL_CTRL field to the 0x02 value to indicate support for the CDL T2A and
T2B pages. This is thus incorrect and the value 0x02 must be reported
only after the user enables the CDL feature, which is indicated with the
ATA_DFLAG_CDL_ENABLED device flag. When this flag is not set, the
CDL_CTRL field of the ATA feature subpage of the control mode page must
report a value of 0x00.
Fix ata_msense_control_ata_feature() to report the correct values for
the CDL_CTRL field, according to the enable/disable state of the device
CDL feature.
Fixes: df60f9c64576 ("scsi: ata: libata: Add ATA feature control sub-page translation")
Cc: stable@vger.kernel.org
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
---
drivers/ata/libata-scsi.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 2796c0da8257..e6c652b8a541 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -2453,8 +2453,9 @@ static unsigned int ata_msense_control_ata_feature(struct ata_device *dev,
*/
put_unaligned_be16(ATA_FEATURE_SUB_MPAGE_LEN - 4, &buf[2]);
- if (dev->flags & ATA_DFLAG_CDL)
- buf[4] = 0x02; /* Support T2A and T2B pages */
+ if ((dev->flags & ATA_DFLAG_CDL) &&
+ (dev->flags & ATA_DFLAG_CDL_ENABLED))
+ buf[4] = 0x02; /* T2A and T2B pages enabled */
else
buf[4] = 0;
--
2.49.0
next prev parent reply other threads:[~2025-04-16 8:43 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-16 8:42 [PATCH 0/3] CDL Feature control improvements Damien Le Moal
2025-04-16 8:42 ` Damien Le Moal [this message]
2025-04-16 9:40 ` [PATCH 1/3] ata: libata-scsi: Fix ata_msense_control_ata_feature() Niklas Cassel
2025-04-17 23:50 ` Igor Pylypiv
2025-04-18 5:39 ` Damien Le Moal
2025-04-18 7:17 ` Damien Le Moal
2025-04-16 8:42 ` [PATCH 2/3] ata: libata-scsi: Improve CDL control Damien Le Moal
2025-04-16 9:40 ` Niklas Cassel
2025-04-18 0:07 ` Igor Pylypiv
2025-04-16 8:42 ` [PATCH 3/3] scsi: " Damien Le Moal
2025-04-16 9:41 ` Niklas Cassel
2025-04-17 3:37 ` Igor Pylypiv
2025-04-17 11:08 ` Damien Le Moal
2025-04-18 0:09 ` Igor Pylypiv
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250416084238.258169-2-dlemoal@kernel.org \
--to=dlemoal@kernel.org \
--cc=cassel@kernel.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox