hw/block/nvme: refactor identify active namespace id list

Prepare to support inactive namespaces.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
This commit is contained in:
Klaus Jensen 2020-02-23 14:35:20 -08:00
parent d97eee64fe
commit 7c9c350c15

View file

@ -1473,7 +1473,7 @@ static uint16_t nvme_identify_nslist(NvmeCtrl *n, NvmeRequest *req)
uint32_t min_nsid = le32_to_cpu(c->nsid); uint32_t min_nsid = le32_to_cpu(c->nsid);
uint32_t *list; uint32_t *list;
uint16_t ret; uint16_t ret;
int i, j = 0; int j = 0;
trace_pci_nvme_identify_nslist(min_nsid); trace_pci_nvme_identify_nslist(min_nsid);
@ -1488,11 +1488,11 @@ static uint16_t nvme_identify_nslist(NvmeCtrl *n, NvmeRequest *req)
} }
list = g_malloc0(data_len); list = g_malloc0(data_len);
for (i = 0; i < n->num_namespaces; i++) { for (int i = 1; i <= n->num_namespaces; i++) {
if (i < min_nsid) { if (i <= min_nsid) {
continue; continue;
} }
list[j++] = cpu_to_le32(i + 1); list[j++] = cpu_to_le32(i);
if (j == data_len / sizeof(uint32_t)) { if (j == data_len / sizeof(uint32_t)) {
break; break;
} }