nvme: remove IDENTIFY_CNS quirk from normal QEMU SSDs
The IDENTIFY_CNS quirk was applied as part of QEMU OCSSD handling in commit6442451b
. But it was applied not only to the OCSSD dev ID, but also the dev ID for non-OCSSD NVMe controllers. Starting with QEMU 5.2, QEMU will allocate a default 256 namespaces, but only some are active (associated with the backing disks specified by the user). QEMU supports IDENTIFY_CNS, but since this quirk was set, we wouldn't send a real IDENTIFY_CNS and instead would just populate a fake list where all namespaces were considered active. This causes breakage in a few places - mainly where we iterate through the active namespaces, and then are surprised that calling spdk_nvme_ns_is_active() returns false. It was also breaking bdev_nvme_attach_controller RPC, since by default we can only support returning 128 names, but since all of the namespaces were deemed active, it was trying to return 256. Fixes #1916. Signed-off-by: Jim Harris <james.r.harris@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7658 (master) (cherry picked from commit6fd1cc3716
) Change-Id: I4fdd27e0e36f0ac07a95f9f29aa83357e8505a45 Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7674 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
e6e51ea9a2
commit
35d003dfed
@ -89,7 +89,6 @@ static const struct nvme_quirk nvme_quirks[] = {
|
||||
NVME_QUIRK_DELAY_AFTER_QUEUE_ALLOC
|
||||
},
|
||||
{ {SPDK_PCI_CLASS_NVME, SPDK_PCI_VID_INTEL, 0x5845, SPDK_PCI_ANY_ID, SPDK_PCI_ANY_ID},
|
||||
NVME_QUIRK_IDENTIFY_CNS |
|
||||
NVME_INTEL_QUIRK_NO_LOG_PAGES |
|
||||
NVME_QUIRK_MAXIMUM_PCI_ACCESS_WIDTH
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user