For example,

nvme_rdma_complete_rq
        ->nvme_rdma_unmap_data
                ->ib_mr_pool_put

But the ib queue pair may has been destroyed by nvme_rdma_destroy_io_queues()
before request's remote completion.

nvme_rdma_teardown_io_queues:
         nvme_stop_queues(&ctrl->ctrl);
         nvme_rdma_stop_io_queues(ctrl);
         blk_mq_tagset_busy_iter(&ctrl->tag_set, nvme_cancel_request,
                         &ctrl->ctrl);
         if (remove)
                 nvme_start_queues(&ctrl->ctrl);
         nvme_rdma_destroy_io_queues(ctrl, remove);


Yea, you're right. I'm fine with this patchset.

Reply via email to