diff options
author | Hannes Reinecke <hare@suse.de> | 2023-11-21 11:01:03 +0300 |
---|---|---|
committer | Keith Busch <kbusch@kernel.org> | 2023-11-22 19:07:02 +0300 |
commit | 3af755a46881c32fecaecfdeaf3a8f0a869deca5 (patch) | |
tree | 0af4b47db8c412178a9d92396d4cc0f730440615 /drivers/nvme/host/rdma.c | |
parent | 11b9d0b4999705105d1fb7f0e8ac969e0f41b1b8 (diff) | |
download | linux-3af755a46881c32fecaecfdeaf3a8f0a869deca5.tar.xz |
nvme: move nvme_stop_keep_alive() back to original position
Stopping keep-alive not only stops the keep-alive workqueue,
but also needs to be synchronized with I/O termination as we
must not send a keep-alive command after all I/O had been
terminated.
So to avoid any regressions move the call to stop_keep_alive()
back to its original position and ensure that keep-alive is
correctly stopped failing to setup the admin queue.
Fixes: 4733b65d82bd ("nvme: start keep-alive after admin queue setup")
Suggested-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'drivers/nvme/host/rdma.c')
-rw-r--r-- | drivers/nvme/host/rdma.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c index a7fea4cbacd7..6d178d555920 100644 --- a/drivers/nvme/host/rdma.c +++ b/drivers/nvme/host/rdma.c @@ -1080,6 +1080,7 @@ destroy_io: nvme_rdma_free_io_queues(ctrl); } destroy_admin: + nvme_stop_keep_alive(&ctrl->ctrl); nvme_quiesce_admin_queue(&ctrl->ctrl); blk_sync_queue(ctrl->ctrl.admin_q); nvme_rdma_stop_queue(&ctrl->queues[0]); |