From: Maurizio Lombardi <mlombard@redhat.com>
To: kbusch@meta.com
Cc: hare@kernel.org, sagi@grimberg.me, emilne@redhat.com,
jmeneghi@redhat.com, linux-nvme@lists.infradead.org
Subject: [PATCH 1/5] nvme: add definitions for cancel command
Date: Fri, 10 May 2024 18:30:22 +0200 [thread overview]
Message-ID: <20240510163026.786898-2-mlombard@redhat.com> (raw)
In-Reply-To: <20240510163026.786898-1-mlombard@redhat.com>
From: John Meneghini <jmeneghi@redhat.com>
Add new definitions needed to support TP4097a.
Signed-off-by: John Meneghini <jmeneghi@redhat.com>
---
drivers/nvme/host/constants.c | 1 +
drivers/nvme/host/core.c | 1 +
include/linux/nvme.h | 19 +++++++++++++++++++
3 files changed, 21 insertions(+)
diff --git a/drivers/nvme/host/constants.c b/drivers/nvme/host/constants.c
index 6f2ebb5fcdb0..d1fb08a0cc42 100644
--- a/drivers/nvme/host/constants.c
+++ b/drivers/nvme/host/constants.c
@@ -19,6 +19,7 @@ static const char * const nvme_ops[] = {
[nvme_cmd_resv_report] = "Reservation Report",
[nvme_cmd_resv_acquire] = "Reservation Acquire",
[nvme_cmd_resv_release] = "Reservation Release",
+ [nvme_cmd_cancel] = "Cancel",
[nvme_cmd_zone_mgmt_send] = "Zone Management Send",
[nvme_cmd_zone_mgmt_recv] = "Zone Management Receive",
[nvme_cmd_zone_append] = "Zone Append",
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 095f59e7aa93..b48967c98114 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -4835,6 +4835,7 @@ static inline void _nvme_check_size(void)
BUILD_BUG_ON(sizeof(struct nvme_dsm_cmd) != 64);
BUILD_BUG_ON(sizeof(struct nvme_write_zeroes_cmd) != 64);
BUILD_BUG_ON(sizeof(struct nvme_abort_cmd) != 64);
+ BUILD_BUG_ON(sizeof(struct nvme_cancel_cmd) != 64);
BUILD_BUG_ON(sizeof(struct nvme_get_log_page_command) != 64);
BUILD_BUG_ON(sizeof(struct nvme_command) != 64);
BUILD_BUG_ON(sizeof(struct nvme_id_ctrl) != NVME_IDENTIFY_DATA_SIZE);
diff --git a/include/linux/nvme.h b/include/linux/nvme.h
index 425573202295..8efebc805e19 100644
--- a/include/linux/nvme.h
+++ b/include/linux/nvme.h
@@ -830,6 +830,7 @@ enum nvme_opcode {
nvme_cmd_resv_report = 0x0e,
nvme_cmd_resv_acquire = 0x11,
nvme_cmd_resv_release = 0x15,
+ nvme_cmd_cancel = 0x18,
nvme_cmd_zone_mgmt_send = 0x79,
nvme_cmd_zone_mgmt_recv = 0x7a,
nvme_cmd_zone_append = 0x7d,
@@ -1343,6 +1344,22 @@ struct nvme_abort_cmd {
__u32 rsvd11[5];
};
+struct nvme_cancel_cmd {
+ __u8 opcode;
+ __u8 flags;
+ __u16 command_id;
+ __le32 nsid;
+ __u32 rsvd1[8];
+ __le16 sqid;
+ __u16 cid;
+ __u8 action;
+ __u8 rsvd11[3];
+ __u32 rsvd12[4];
+};
+
+#define NVME_CANCEL_ACTION_MUL_CMD 1
+#define NVME_CANCEL_ACTION_SINGLE_CMD 0
+
struct nvme_download_firmware {
__u8 opcode;
__u8 flags;
@@ -1798,6 +1815,7 @@ struct nvme_command {
struct nvme_zone_mgmt_send_cmd zms;
struct nvme_zone_mgmt_recv_cmd zmr;
struct nvme_abort_cmd abort;
+ struct nvme_cancel_cmd cancel;
struct nvme_get_log_page_command get_log_page;
struct nvmf_common_command fabrics;
struct nvmf_connect_command connect;
@@ -1938,6 +1956,7 @@ enum {
NVME_SC_INVALID_PI = 0x181,
NVME_SC_READ_ONLY = 0x182,
NVME_SC_ONCS_NOT_SUPPORTED = 0x183,
+ NVME_SC_INVALID_CID = 0x184,
/*
* I/O Command Set Specific - Fabrics commands:
--
2.39.3
next prev parent reply other threads:[~2024-05-10 16:30 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-10 16:30 [PATCH 0/5] Support for Cancel commands for host (TCP and RDMA) Maurizio Lombardi
2024-05-10 16:30 ` Maurizio Lombardi [this message]
2024-05-10 16:30 ` [PATCH 2/5] nvme-core: add a function to submit a cancel command Maurizio Lombardi
2024-05-12 14:06 ` Sagi Grimberg
2024-06-20 8:31 ` Maurizio Lombardi
2024-06-20 13:01 ` Maurizio Lombardi
2024-06-24 10:06 ` Sagi Grimberg
2024-06-26 18:38 ` [PATCH v2 7/7] nvme: add reserved ioq tags for cancel John Meneghini
2024-06-26 19:03 ` Keith Busch
2024-06-26 19:20 ` John Meneghini
2024-06-27 8:12 ` Maurizio Lombardi
2024-06-26 19:10 ` John Meneghini
2024-05-10 16:30 ` [PATCH 3/5] nvme-tcp: use the cancel command to perform an abort if target supports it Maurizio Lombardi
2024-05-10 16:30 ` [PATCH 4/5] nvme-rdma: " Maurizio Lombardi
2024-05-10 16:30 ` [donotmerge PATCH 5/5] nvmet: target support for cancel commands Maurizio Lombardi
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=20240510163026.786898-2-mlombard@redhat.com \
--to=mlombard@redhat.com \
--cc=emilne@redhat.com \
--cc=hare@kernel.org \
--cc=jmeneghi@redhat.com \
--cc=kbusch@meta.com \
--cc=linux-nvme@lists.infradead.org \
--cc=sagi@grimberg.me \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.