Page MenuHomeFreeBSD

D51391.id158698.diff
No OneTemporary

D51391.id158698.diff

diff --git a/sys/dev/nvme/nvme.c b/sys/dev/nvme/nvme.c
--- a/sys/dev/nvme/nvme.c
+++ b/sys/dev/nvme/nvme.c
@@ -208,11 +208,10 @@
}
void
-nvme_notify_fail_consumers(struct nvme_controller *ctrlr)
+nvme_notify_fail(struct nvme_controller *ctrlr)
{
- struct nvme_consumer *cons;
- void *ctrlr_cookie;
- uint32_t i;
+ device_t *children;
+ int n_children;
/*
* This controller failed during initialization (i.e. IDENTIFY
@@ -223,15 +222,13 @@
if (!ctrlr->is_initialized)
return;
- for (i = 0; i < NVME_MAX_CONSUMERS; i++) {
- cons = &nvme_consumer[i];
- if (cons->id != INVALID_CONSUMER_ID &&
- (ctrlr_cookie = ctrlr->cons_cookie[i]) != NULL) {
- ctrlr->cons_cookie[i] = NULL;
- if (cons->fail_fn != NULL)
- cons->fail_fn(ctrlr_cookie);
- }
- }
+ if (device_get_children(ctrlr->dev, &children, &n_children) != 0)
+ return;
+
+ for (int i = 0; i < n_children; i++)
+ NVMEC_FAIL(children[i]);
+
+ free(children, M_TEMP);
}
struct nvme_consumer *
diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c
--- a/sys/dev/nvme/nvme_ctrlr.c
+++ b/sys/dev/nvme/nvme_ctrlr.c
@@ -253,7 +253,7 @@
nvme_qpair_fail(&ctrlr->ioq[i]);
}
}
- nvme_notify_fail_consumers(ctrlr);
+ nvme_notify_fail(ctrlr);
}
/*
@@ -1672,7 +1672,7 @@
if (gone)
nvme_ctrlr_fail(ctrlr, true);
else
- nvme_notify_fail_consumers(ctrlr);
+ nvme_notify_fail(ctrlr);
for (i = 0; i < NVME_MAX_NAMESPACES; i++)
nvme_ns_destruct(&ctrlr->ns[i]);
diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h
--- a/sys/dev/nvme/nvme_private.h
+++ b/sys/dev/nvme/nvme_private.h
@@ -559,7 +559,7 @@
const struct nvme_completion *async_cpl,
uint32_t log_page_id, void *log_page_buffer,
uint32_t log_page_size);
-void nvme_notify_fail_consumers(struct nvme_controller *ctrlr);
+void nvme_notify_fail(struct nvme_controller *ctrlr);
void nvme_ctrlr_shared_handler(void *arg);
void nvme_ctrlr_poll(struct nvme_controller *ctrlr);

File Metadata

Mime Type
text/plain
Expires
Tue, Feb 3, 1:17 PM (4 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28424297
Default Alt Text
D51391.id158698.diff (1 KB)

Event Timeline