Page MenuHomeFreeBSD

D51383.diff
No OneTemporary

D51383.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
@@ -104,9 +104,14 @@
nvme_detach(device_t dev)
{
struct nvme_controller *ctrlr = DEVICE2SOFTC(dev);
+ int error;
config_intrhook_drain(&ctrlr->config_hook);
+ error = bus_generic_detach(dev);
+ if (error)
+ return (error);
+
nvme_ctrlr_destruct(ctrlr, dev);
return (0);
}
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
@@ -1079,8 +1079,13 @@
config_intrhook_disestablish(&ctrlr->config_hook);
if (!ctrlr->is_failed) {
+ device_t child;
+
ctrlr->is_initialized = true;
nvme_notify_new_controller(ctrlr);
+ child = device_add_child(ctrlr->dev, NULL, DEVICE_UNIT_ANY);
+ device_set_ivars(child, ctrlr);
+ bus_attach_children(ctrlr->dev);
}
TSEXIT();
}

File Metadata

Mime Type
text/plain
Expires
Mon, Feb 2, 8:15 AM (19 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28411058
Default Alt Text
D51383.diff (878 B)

Event Timeline