nvme: execute hotplug monitor even if hotplug_fd < 0

NVMe controllers can be marked as removed even if we cannot receive
uevents (e.g. by the VMD driver), so we should process them regardless
of hotplug_fd.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Iaaf13a136929200e824f7a6dd3b5584998801630
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15547
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tom Nabarro <tom.nabarro@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Konrad Sztyber 2022-11-21 15:51:29 +01:00 committed by Tomasz Zawadzki
parent 0a672ea974
commit 72a6cd5381

View File

@ -104,12 +104,10 @@ _nvme_pcie_hotplug_monitor(struct spdk_nvme_probe_ctx *probe_ctx)
struct spdk_nvme_ctrlr *ctrlr, *tmp;
struct spdk_pci_event event;
if (g_spdk_nvme_driver->hotplug_fd < 0) {
return 0;
}
while (spdk_pci_get_event(g_spdk_nvme_driver->hotplug_fd, &event) > 0) {
_nvme_pcie_event_process(&event, probe_ctx->cb_ctx);
if (g_spdk_nvme_driver->hotplug_fd >= 0) {
while (spdk_pci_get_event(g_spdk_nvme_driver->hotplug_fd, &event) > 0) {
_nvme_pcie_event_process(&event, probe_ctx->cb_ctx);
}
}
/* Initiate removal of physically hotremoved PCI controllers. Even after