lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAHj4cs-7v_=LD5oKSGimH1_vKp0T5tmemqsMoAw+ZZGTMP9k9g@mail.gmail.com>
Date: Tue, 2 Sep 2025 21:23:32 +0800
From: Yi Zhang <yi.zhang@...hat.com>
To: Daniel Wagner <wagi@...nel.org>
Cc: James Smart <james.smart@...adcom.com>, Christoph Hellwig <hch@....de>, 
	Sagi Grimberg <sagi@...mberg.me>, linux-nvme@...ts.infradead.org, 
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] nvmet-fcloop: call done callback even when remote port is gone

On Mon, Sep 1, 2025 at 11:58 PM Daniel Wagner <wagi@...nel.org> wrote:
>
> When the target port is gone, it's not possible to access any of the
> request resources. The function should just silently drop the response.
> The comment is misleading in this regard.
>
> Though it's still necessary to call the driver via the ->done callback
> so the driver is able to release all resources.
>
> Reported-by: Yi Zhang <yi.zhang@...hat.com>
> Closes: https://lore.kernel.org/all/CAHj4cs-OBA0WMt5f7R0dz+rR4HcEz19YLhnyGsj-MRV3jWDsPg@mail.gmail.com/
> Fixes: 84eedced1c5b ("nvmet-fcloop: drop response if targetport is gone")
> Signed-off-by: Daniel Wagner <wagi@...nel.org>
> ---
>  drivers/nvme/target/fcloop.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>

Verified the kmemleak issue fixed with this patch:

Tested-by: Yi Zhang <yi.zhang@...hat.com>

> diff --git a/drivers/nvme/target/fcloop.c b/drivers/nvme/target/fcloop.c
> index 257b497d515a892a39da82d2f96b3fa3c6e10cdd..5dffcc5becae86c79ef75a123647566b2dfc21f6 100644
> --- a/drivers/nvme/target/fcloop.c
> +++ b/drivers/nvme/target/fcloop.c
> @@ -496,13 +496,15 @@ fcloop_t2h_xmt_ls_rsp(struct nvme_fc_local_port *localport,
>         if (!targetport) {
>                 /*
>                  * The target port is gone. The target doesn't expect any
> -                * response anymore and the ->done call is not valid
> -                * because the resources have been freed by
> -                * nvmet_fc_free_pending_reqs.
> +                * response anymore and thus lsreq can't be accessed anymore.
>                  *
>                  * We end up here from delete association exchange:
>                  * nvmet_fc_xmt_disconnect_assoc sends an async request.
> +                *
> +                * Return success because this is what LLDDs do; silently
> +                * drop the response.
>                  */
> +               lsrsp->done(lsrsp);
>                 kmem_cache_free(lsreq_cache, tls_req);
>                 return 0;
>         }
>
> ---
> base-commit: b320789d6883cc00ac78ce83bccbfe7ed58afcf0
> change-id: 20250901-nvme-fc-fix-leaks-4a25ca3875ab
>
> Best regards,
> --
> Daniel Wagner <wagi@...nel.org>
>


-- 
Best Regards,
  Yi Zhang


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ