> +static void nvme_loop_free_ctrl(struct nvme_ctrl *nctrl) > +{ > + struct nvme_loop_ctrl *ctrl = to_loop_ctrl(nctrl); > + > + list_del(&ctrl->list); This should be list_del_init so that cleanup_module list_empty() check will be correct. unloading nvme-loop with active controllers is getting a list corruption.