Page MenuHomeFreeBSD

D47468.id146099.diff
No OneTemporary

D47468.id146099.diff

diff --git a/lib/libnvmf/nvmf_host.c b/lib/libnvmf/nvmf_host.c
--- a/lib/libnvmf/nvmf_host.c
+++ b/lib/libnvmf/nvmf_host.c
@@ -498,7 +498,7 @@
nvmf_init_sqe(&cmd, NVME_OPC_IDENTIFY);
/* 5.15.1 Use CNS of 0x01 for controller data. */
- cmd.cdw10 = htole32(1);
+ cmd.cdw10 = htole32(NVME_CNS_ID_CONTROLLER);
cc = nvmf_allocate_command(qp, &cmd);
if (cc == NULL)
@@ -547,7 +547,7 @@
nvmf_init_sqe(&cmd, NVME_OPC_IDENTIFY);
/* 5.15.1 Use CNS of 0x00 for namespace data. */
- cmd.cdw10 = htole32(0);
+ cmd.cdw10 = htole32(NVME_CNS_ID_NAMESPACE);
cmd.nsid = htole32(nsid);
cc = nvmf_allocate_command(qp, &cmd);
diff --git a/sbin/nvmecontrol/ns.c b/sbin/nvmecontrol/ns.c
--- a/sbin/nvmecontrol/ns.c
+++ b/sbin/nvmecontrol/ns.c
@@ -422,7 +422,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(0);
- pt.cmd.cdw10 = htole32(0x02);
+ pt.cmd.cdw10 = htole32(NVME_CNS_ACTIVE_NAMESPACE_ID_LIST);
pt.buf = list;
pt.len = sizeof(list);
pt.is_read = 1;
@@ -467,7 +467,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(0);
- pt.cmd.cdw10 = htole32(0x10);
+ pt.cmd.cdw10 = htole32(NVME_CNS_ALLOCATED_NAMESPACE_ID_LIST);
pt.buf = list;
pt.len = sizeof(list);
pt.is_read = 1;
@@ -511,7 +511,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
- pt.cmd.cdw10 = htole32(0x13);
+ pt.cmd.cdw10 = htole32(NVME_CNS_CONTROLLER_LIST);
pt.buf = clist;
pt.len = sizeof(clist);
pt.is_read = 1;
@@ -728,7 +728,7 @@
/* Get full list of controllers to attach to. */
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
- pt.cmd.cdw10 = htole32(0x13);
+ pt.cmd.cdw10 = htole32(NVME_CNS_CONTROLLER_LIST);
pt.buf = clist;
pt.len = sizeof(clist);
pt.is_read = 1;
@@ -799,7 +799,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(nsid);
- pt.cmd.cdw10 = htole32(0x12);
+ pt.cmd.cdw10 = htole32(NVME_CNS_CONTROLLER_LIST_ATTACHED);
pt.buf = clist;
pt.len = sizeof(clist);
pt.is_read = 1;
@@ -874,7 +874,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(nsid);
- pt.cmd.cdw10 = htole32(0x12);
+ pt.cmd.cdw10 = htole32(NVME_CNS_CONTROLLER_LIST_ATTACHED);
pt.buf = clist;
pt.len = sizeof(clist);
pt.is_read = 1;
@@ -927,7 +927,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(nsid);
- pt.cmd.cdw10 = htole32(0x11);
+ pt.cmd.cdw10 = htole32(NVME_CNS_ID_ALLOCATED_NAMESPACE);
pt.buf = &nsdata;
pt.len = sizeof(nsdata);
pt.is_read = 1;
diff --git a/sbin/nvmecontrol/nvmecontrol.c b/sbin/nvmecontrol/nvmecontrol.c
--- a/sbin/nvmecontrol/nvmecontrol.c
+++ b/sbin/nvmecontrol/nvmecontrol.c
@@ -102,7 +102,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
- pt.cmd.cdw10 = htole32(1);
+ pt.cmd.cdw10 = htole32(NVME_CNS_ID_CONTROLLER);
pt.buf = cdata;
pt.len = sizeof(*cdata);
pt.is_read = 1;
@@ -126,7 +126,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(nsid);
- pt.cmd.cdw10 = htole32(0);
+ pt.cmd.cdw10 = htole32(NVME_CNS_ID_NAMESPACE);
pt.buf = nsdata;
pt.len = sizeof(*nsdata);
pt.is_read = 1;
@@ -150,7 +150,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(nsid);
- pt.cmd.cdw10 = htole32(2);
+ pt.cmd.cdw10 = htole32(NVME_CNS_ACTIVE_NAMESPACE_ID_LIST);
pt.buf = nslist;
pt.len = sizeof(*nslist);
pt.is_read = 1;
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c
--- a/sys/cam/ctl/ctl.c
+++ b/sys/cam/ctl/ctl.c
@@ -10778,7 +10778,7 @@
if (lun == NULL) {
cns = le32toh(ctnio->cmd.cdw10) & 0xff;
switch (cns) {
- case 0:
+ case NVME_CNS_ID_NAMESPACE:
memset(ctnio->kern_data_ptr, 0, len);
ctl_datamove((union ctl_io *)ctnio);
break;
diff --git a/sys/cam/ctl/ctl_backend_block.c b/sys/cam/ctl/ctl_backend_block.c
--- a/sys/cam/ctl/ctl_backend_block.c
+++ b/sys/cam/ctl/ctl_backend_block.c
@@ -1771,10 +1771,10 @@
cns = le32toh(io->nvmeio.cmd.cdw10) & 0xff;
switch (cns) {
- case 0:
+ case NVME_CNS_ID_NAMESPACE:
ctl_be_block_namespace_data(be_lun, io);
break;
- case 3:
+ case NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST:
ctl_be_block_nvme_ids(be_lun, io);
break;
default:
@@ -3213,8 +3213,8 @@
cns = le32toh(io->nvmeio.cmd.cdw10) & 0xff;
switch (cns) {
- case 0:
- case 3:
+ case NVME_CNS_ID_NAMESPACE:
+ case NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST:
mtx_lock(&be_lun->queue_lock);
STAILQ_INSERT_TAIL(&be_lun->config_read_queue,
&io->io_hdr, links);
diff --git a/sys/cam/ctl/ctl_backend_ramdisk.c b/sys/cam/ctl/ctl_backend_ramdisk.c
--- a/sys/cam/ctl/ctl_backend_ramdisk.c
+++ b/sys/cam/ctl/ctl_backend_ramdisk.c
@@ -658,9 +658,9 @@
cns = le32toh(io->nvmeio.cmd.cdw10) & 0xff;
switch (cns) {
- case 0:
+ case NVME_CNS_ID_NAMESPACE:
return (ramdisk_namespace_data(io));
- case 3:
+ case NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST:
return (ramdisk_nvme_ids(io));
default:
ctl_nvme_set_invalid_field(&io->nvmeio);
diff --git a/sys/cam/nvme/nvme_xpt.c b/sys/cam/nvme/nvme_xpt.c
--- a/sys/cam/nvme/nvme_xpt.c
+++ b/sys/cam/nvme/nvme_xpt.c
@@ -281,7 +281,7 @@
sizeof(softc->cd), /* dxfer_len */
30 * 1000); /* timeout 30s */
nvme_ns_cmd(nvmeio, NVME_OPC_IDENTIFY, 0,
- 1, 0, 0, 0, 0, 0);
+ NVME_CNS_ID_CONTROLLER, 0, 0, 0, 0, 0);
break;
case NVME_PROBE_IDENTIFY_NS:
cam_fill_nvmeadmin(nvmeio,
@@ -292,7 +292,7 @@
sizeof(softc->ns), /* dxfer_len */
30 * 1000); /* timeout 30s */
nvme_ns_cmd(nvmeio, NVME_OPC_IDENTIFY, lun,
- 0, 0, 0, 0, 0, 0);
+ NVME_CNS_ID_NAMESPACE, 0, 0, 0, 0, 0);
break;
default:
panic("nvme_probe_start: invalid action state 0x%x\n", softc->action);
diff --git a/sys/dev/nvme/nvme.h b/sys/dev/nvme/nvme.h
--- a/sys/dev/nvme/nvme.h
+++ b/sys/dev/nvme/nvme.h
@@ -1142,6 +1142,20 @@
_Static_assert(sizeof(struct nvme_power_state) == 32, "bad size for nvme_power_state");
+#define NVME_CNS_ID_NAMESPACE 0x00
+#define NVME_CNS_ID_CONTROLLER 0x01
+#define NVME_CNS_ACTIVE_NAMESPACE_ID_LIST 0x02
+#define NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST 0x03
+#define NVME_CNS_NVM_SET_LIST 0x04
+#define NVME_CNS_ALLOCATED_NAMESPACE_ID_LIST 0x10
+#define NVME_CNS_ID_ALLOCATED_NAMESPACE 0x11
+#define NVME_CNS_CONTROLLER_LIST_ATTACHED 0x12
+#define NVME_CNS_CONTROLLER_LIST 0x13
+#define NVME_CNS_PRIMARY_CONTROLLER_CAPABILITIES 0x14
+#define NVME_CNS_SECONDARY_CONTROLLER_LIST 0x15
+#define NVME_CNS_NAMESPACE_GRANULARITY_LIST 0x16
+#define NVME_CNS_UUID_LIST 0x17
+
#define NVME_SERIAL_NUMBER_LENGTH 20
#define NVME_MODEL_NUMBER_LENGTH 40
#define NVME_FIRMWARE_REVISION_LENGTH 8
diff --git a/sys/dev/nvme/nvme_ctrlr_cmd.c b/sys/dev/nvme/nvme_ctrlr_cmd.c
--- a/sys/dev/nvme/nvme_ctrlr_cmd.c
+++ b/sys/dev/nvme/nvme_ctrlr_cmd.c
@@ -46,7 +46,7 @@
* TODO: create an identify command data structure, which
* includes this CNS bit in cdw10.
*/
- cmd->cdw10 = htole32(1);
+ cmd->cdw10 = htole32(NVME_CNS_ID_CONTROLLER);
nvme_ctrlr_submit_admin_request(ctrlr, req);
}
diff --git a/sys/dev/nvmf/controller/nvmft_controller.c b/sys/dev/nvmf/controller/nvmft_controller.c
--- a/sys/dev/nvmf/controller/nvmft_controller.c
+++ b/sys/dev/nvmf/controller/nvmft_controller.c
@@ -669,11 +669,11 @@
}
switch (cns) {
- case 0: /* Namespace data. */
- case 3: /* Namespace Identification Descriptor list. */
+ case NVME_CNS_ID_NAMESPACE: /* Namespace data. */
+ case NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST: /* Namespace Identification Descriptor list. */
nvmft_dispatch_command(ctrlr->admin, nc, true);
return;
- case 1:
+ case NVME_CNS_ID_CONTROLLER:
/* Controller data. */
m = m_getml(sizeof(ctrlr->cdata), M_WAITOK);
m_copyback(m, 0, sizeof(ctrlr->cdata), (void *)&ctrlr->cdata);
@@ -681,7 +681,7 @@
sizeof(ctrlr->cdata));
MPASS(status != NVMF_MORE);
break;
- case 2:
+ case NVME_CNS_ACTIVE_NAMESPACE_ID_LIST:
{
/* Active namespace list. */
struct nvme_ns_list *nslist;
diff --git a/sys/dev/nvmf/host/nvmf_cmd.c b/sys/dev/nvmf/host/nvmf_cmd.c
--- a/sys/dev/nvmf/host/nvmf_cmd.c
+++ b/sys/dev/nvmf/host/nvmf_cmd.c
@@ -100,7 +100,7 @@
cmd.opc = NVME_OPC_IDENTIFY;
/* 5.15.1 Use CNS of 0x02 for namespace data. */
- cmd.cdw10 = htole32(2);
+ cmd.cdw10 = htole32(NVME_CNS_ACTIVE_NAMESPACE_ID_LIST);
cmd.nsid = htole32(id);
req = nvmf_allocate_request(sc->admin, &cmd, req_cb, req_cb_arg, how);
@@ -126,7 +126,7 @@
cmd.opc = NVME_OPC_IDENTIFY;
/* 5.15.1 Use CNS of 0x00 for namespace data. */
- cmd.cdw10 = htole32(0);
+ cmd.cdw10 = htole32(NVME_CNS_ID_NAMESPACE);
cmd.nsid = htole32(id);
req = nvmf_allocate_request(sc->admin, &cmd, req_cb, req_cb_arg, how);
diff --git a/usr.sbin/bhyve/pci_nvme.c b/usr.sbin/bhyve/pci_nvme.c
--- a/usr.sbin/bhyve/pci_nvme.c
+++ b/usr.sbin/bhyve/pci_nvme.c
@@ -1497,7 +1497,7 @@
pci_nvme_status_genc(&status, NVME_SC_SUCCESS);
switch (command->cdw10 & 0xFF) {
- case 0x00: /* return Identify Namespace data structure */
+ case NVME_CNS_ID_NAMESPACE: /* return Identify Namespace data structure */
/* Global NS only valid with NS Management */
if (command->nsid == NVME_GLOBAL_NAMESPACE_TAG) {
pci_nvme_status_genc(&status,
@@ -1508,20 +1508,20 @@
command->prp2, (uint8_t *)&sc->nsdata, sizeof(sc->nsdata),
NVME_COPY_TO_PRP);
break;
- case 0x01: /* return Identify Controller data structure */
+ case NVME_CNS_ID_CONTROLLER: /* return Identify Controller data structure */
nvme_prp_memcpy(sc->nsc_pi->pi_vmctx, command->prp1,
command->prp2, (uint8_t *)&sc->ctrldata,
sizeof(sc->ctrldata),
NVME_COPY_TO_PRP);
break;
- case 0x02: /* list of 1024 active NSIDs > CDW1.NSID */
+ case NVME_CNS_ACTIVE_NAMESPACE_ID_LIST: /* list of 1024 active NSIDs > CDW1.NSID */
dest = vm_map_gpa(sc->nsc_pi->pi_vmctx, command->prp1,
sizeof(uint32_t) * 1024);
/* All unused entries shall be zero */
memset(dest, 0, sizeof(uint32_t) * 1024);
((uint32_t *)dest)[0] = 1;
break;
- case 0x03: /* list of NSID structures in CDW1.NSID, 4096 bytes */
+ case NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST: /* list of NSID structures in CDW1.NSID, 4096 bytes */
if (command->nsid != 1) {
pci_nvme_status_genc(&status,
NVME_SC_INVALID_NAMESPACE_OR_FORMAT);
@@ -1537,7 +1537,7 @@
((uint8_t *)dest)[1] = sizeof(uint64_t);
memcpy(((uint8_t *)dest) + 4, sc->nsdata.eui64, sizeof(uint64_t));
break;
- case 0x13:
+ case NVME_CNS_CONTROLLER_LIST:
/*
* Controller list is optional but used by UNH tests. Return
* a valid but empty list.
diff --git a/usr.sbin/camdd/camdd.c b/usr.sbin/camdd/camdd.c
--- a/usr.sbin/camdd/camdd.c
+++ b/usr.sbin/camdd/camdd.c
@@ -1398,7 +1398,7 @@
nc->opc = NVME_OPC_IDENTIFY;
nc->nsid = nsid;
- nc->cdw10 = 0; /* Identify Namespace is CNS = 0 */
+ nc->cdw10 = NVME_CNS_ID_NAMESPACE; /* Identify Namespace is CNS = 0 */
cam_fill_nvmeadmin(&ccb->nvmeio,
/*retries*/ probe_retry_count,
diff --git a/usr.sbin/nvmfd/controller.c b/usr.sbin/nvmfd/controller.c
--- a/usr.sbin/nvmfd/controller.c
+++ b/usr.sbin/nvmfd/controller.c
@@ -154,7 +154,7 @@
cns = le32toh(cmd->cdw10) & 0xFF;
switch (cns) {
- case 1:
+ case NVME_CNS_ID_CONTROLLER:
break;
default:
warnx("Unsupported CNS %#x for IDENTIFY", cns);
diff --git a/usr.sbin/nvmfd/io.c b/usr.sbin/nvmfd/io.c
--- a/usr.sbin/nvmfd/io.c
+++ b/usr.sbin/nvmfd/io.c
@@ -149,7 +149,7 @@
cns = le32toh(cmd->cdw10) & 0xFF;
switch (cns) {
- case 0: /* Namespace data. */
+ case NVME_CNS_ID_NAMESPACE: /* Namespace data. */
if (!device_namespace_data(le32toh(cmd->nsid), &nsdata)) {
nvmf_send_generic_error(nc,
NVME_SC_INVALID_NAMESPACE_OR_FORMAT);
@@ -158,7 +158,7 @@
nvmf_send_controller_data(nc, &nsdata, sizeof(nsdata));
return (true);
- case 2: /* Active namespace list. */
+ case NVME_CNS_ACTIVE_NAMESPACE_ID_LIST: /* Active namespace list. */
nsid = le32toh(cmd->nsid);
if (nsid >= 0xfffffffe) {
nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
@@ -168,7 +168,7 @@
device_active_nslist(nsid, &nslist);
nvmf_send_controller_data(nc, &nslist, sizeof(nslist));
return (true);
- case 3: /* Namespace Identification Descriptor list. */
+ case NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST: /* Namespace Identification Descriptor list. */
if (!device_identification_descriptor(le32toh(cmd->nsid),
&nsdata)) {
nvmf_send_generic_error(nc,

File Metadata

Mime Type
text/plain
Expires
Thu, May 14, 8:06 PM (12 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33058097
Default Alt Text
D47468.id146099.diff (12 KB)

Event Timeline