diff options
author | Hannes Reinecke <hare@suse.de> | 2023-11-21 09:01:03 +0100 |
---|---|---|
committer | Keith Busch <kbusch@kernel.org> | 2023-11-22 17:07:02 +0100 |
commit | 3af755a46881c32fecaecfdeaf3a8f0a869deca5 (patch) | |
tree | 0af4b47db8c412178a9d92396d4cc0f730440615 /drivers/nvme/host/tcp.c | |
parent | nvmet-tcp: always initialize tls_handshake_tmo_work (diff) | |
download | linux-3af755a46881c32fecaecfdeaf3a8f0a869deca5.tar.xz linux-3af755a46881c32fecaecfdeaf3a8f0a869deca5.zip |
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/tcp.c')
-rw-r--r-- | drivers/nvme/host/tcp.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c index 6ed794815517..ddcd23fb8b75 100644 --- a/drivers/nvme/host/tcp.c +++ b/drivers/nvme/host/tcp.c @@ -2237,6 +2237,7 @@ destroy_io: nvme_tcp_destroy_io_queues(ctrl, new); } destroy_admin: + nvme_stop_keep_alive(ctrl); nvme_tcp_teardown_admin_queue(ctrl, false); return ret; } |