[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 15/18] hw/block/nvme: reject invalid nsid values in active nam
From: |
Klaus Jensen |
Subject: |
[PATCH v3 15/18] hw/block/nvme: reject invalid nsid values in active namespace id list |
Date: |
Mon, 6 Jul 2020 08:13:00 +0200 |
From: Klaus Jensen <k.jensen@samsung.com>
Reject the nsid broadcast value (0xffffffff) and 0xfffffffe in the
Active Namespace ID list.
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
---
hw/block/nvme.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index fc58f3d76530..af39126cd8d1 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -992,6 +992,16 @@ static uint16_t nvme_identify_nslist(NvmeCtrl *n,
NvmeIdentify *c)
trace_pci_nvme_identify_nslist(min_nsid);
+ /*
+ * Both 0xffffffff (NVME_NSID_BROADCAST) and 0xfffffffe are invalid values
+ * since the Active Namespace ID List should return namespaces with ids
+ * *higher* than the NSID specified in the command. This is also specified
+ * in the spec (NVM Express v1.3d, Section 5.15.4).
+ */
+ if (min_nsid >= NVME_NSID_BROADCAST - 1) {
+ return NVME_INVALID_NSID | NVME_DNR;
+ }
+
list = g_malloc0(data_len);
for (i = 0; i < n->num_namespaces; i++) {
if (i < min_nsid) {
--
2.27.0
- [PATCH v3 14/18] hw/block/nvme: support identify namespace descriptor list, (continued)
- [PATCH v3 14/18] hw/block/nvme: support identify namespace descriptor list, Klaus Jensen, 2020/07/06
- [PATCH v3 12/18] hw/block/nvme: support the get/set features select and save fields, Klaus Jensen, 2020/07/06
- [PATCH v3 18/18] hw/block/nvme: bump supported version to v1.3, Klaus Jensen, 2020/07/06
- [PATCH v3 17/18] hw/block/nvme: provide the mandatory subnqn field, Klaus Jensen, 2020/07/06
- [PATCH v3 16/18] hw/block/nvme: enforce valid queue creation sequence, Klaus Jensen, 2020/07/06
- [PATCH v3 15/18] hw/block/nvme: reject invalid nsid values in active namespace id list,
Klaus Jensen <=
- Re: [PATCH v3 00/18] hw/block/nvme: bump to v1.3, Klaus Jensen, 2020/07/20