[PATCHv3] nvmet-tcp: always initialize tls_handshake_tmo_work
Yi Zhang
yi.zhang at redhat.com
Fri Nov 10 03:40:21 PST 2023
Tested-by: Yi Zhang <yi.zhang at redhat.com>
Confirmed below issue was fixed by this patch.
https://lore.kernel.org/linux-nvme/CAHj4cs_Lprbh1zWsJ2yT6+qhNoqjrGDrBgx+XOYvU9SLpmLTtw@mail.gmail.com/
On Fri, Oct 20, 2023 at 1:14 PM Hannes Reinecke <hare at suse.de> wrote:
>
> The TLS handshake timeout work item should always be
> initialized to avoid a crash when cancelling the workqueue.
>
> Fixes: 675b453e0241 ("nvmet-tcp: enable TLS handshake upcall")
> Suggested-by: Maurizio Lombardi <mlombard at redhat.com>
> Signed-off-by: Hannes Reinecke <hare at suse.de>
> ---
> drivers/nvme/target/tcp.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/nvme/target/tcp.c b/drivers/nvme/target/tcp.c
> index 4336fe048e43..b3c1cc6690f6 100644
> --- a/drivers/nvme/target/tcp.c
> +++ b/drivers/nvme/target/tcp.c
> @@ -1856,6 +1856,8 @@ static int nvmet_tcp_tls_handshake(struct nvmet_tcp_queue *queue)
> }
> return ret;
> }
> +#else
> +static void nvmet_tcp_tls_handshake_timeout(struct work_struct *w) {}
> #endif
>
> static void nvmet_tcp_alloc_queue(struct nvmet_tcp_port *port,
> @@ -1913,9 +1915,9 @@ static void nvmet_tcp_alloc_queue(struct nvmet_tcp_port *port,
> list_add_tail(&queue->queue_list, &nvmet_tcp_queue_list);
> mutex_unlock(&nvmet_tcp_queue_mutex);
>
> -#ifdef CONFIG_NVME_TARGET_TCP_TLS
> INIT_DELAYED_WORK(&queue->tls_handshake_tmo_work,
> nvmet_tcp_tls_handshake_timeout);
> +#ifdef CONFIG_NVME_TARGET_TCP_TLS
> if (queue->state == NVMET_TCP_Q_TLS_HANDSHAKE) {
> struct sock *sk = queue->sock->sk;
>
> --
> 2.35.3
>
>
--
Best Regards,
Yi Zhang
More information about the Linux-nvme
mailing list