[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