>> static void nvme_free_ctrl(struct kref *kref) >> { >> struct nvme_ctrl *ctrl = container_of(kref, struct nvme_ctrl, kref); >> + struct nvme_subsystem *subsys = ctrl->subsys; >> put_device(ctrl->device); >> nvme_release_instance(ctrl); >> ida_destroy(&ctrl->ns_ida); >> + if (subsys) { >> + mutex_lock(&subsys->lock); >> + list_del(&ctrl->subsys_entry); >> + mutex_unlock(&subsys->lock); >> + } >> + > > When can this happen? can a controller not have a subsys? When we fail early enough to not have set up the subsystem yet.