[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20251020103820.2917593-7-john.g.garry@oracle.com>
Date: Mon, 20 Oct 2025 10:38:19 +0000
From: John Garry <john.g.garry@...cle.com>
To: martin.petersen@...cle.com
Cc: target-devel@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-scsi@...r.kernel.org, michael.christie@...cle.com,
John Garry <john.g.garry@...cle.com>
Subject: [PATCH v3 6/7] scsi: target: Add WRITE_ATOMIC_16 support to RSOC
From: Mike Christie <michael.christie@...cle.com>
This has us report if the device supports WRITE_ATOMIC_16 in the
REPORT_SUPPORTED_OPERATION_CODES command.
Signed-off-by: Mike Christie <michael.christie@...cle.com>
Signed-off-by: John Garry <john.g.garry@...cle.com>
---
drivers/target/target_core_spc.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c
index ddf8104645d1e..fe2b888bcb435 100644
--- a/drivers/target/target_core_spc.c
+++ b/drivers/target/target_core_spc.c
@@ -1470,6 +1470,24 @@ static const struct target_opcode_descriptor tcm_opcode_write_same32 = {
.update_usage_bits = set_dpofua_usage_bits32,
};
+static bool tcm_is_atomic_enabled(const struct target_opcode_descriptor *descr,
+ struct se_cmd *cmd)
+{
+ return cmd->se_dev->dev_attrib.atomic_max_len;
+}
+
+static struct target_opcode_descriptor tcm_opcode_write_atomic16 = {
+ .support = SCSI_SUPPORT_FULL,
+ .opcode = WRITE_ATOMIC_16,
+ .cdb_size = 16,
+ .usage_bits = {WRITE_ATOMIC_16, 0xf8, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, SCSI_GROUP_NUMBER_MASK, SCSI_CONTROL_MASK},
+ .enabled = tcm_is_atomic_enabled,
+ .update_usage_bits = set_dpofua_usage_bits,
+};
+
static bool tcm_is_caw_enabled(const struct target_opcode_descriptor *descr,
struct se_cmd *cmd)
{
@@ -2026,6 +2044,7 @@ static const struct target_opcode_descriptor *tcm_supported_opcodes[] = {
&tcm_opcode_write16,
&tcm_opcode_write_verify16,
&tcm_opcode_write_same32,
+ &tcm_opcode_write_atomic16,
&tcm_opcode_compare_write,
&tcm_opcode_read_capacity,
&tcm_opcode_read_capacity16,
--
2.43.5
Powered by blists - more mailing lists