[PATCH V2 4/4] nvme-core: fix dev_pm_qos memleak

Yi Zhang yi.zhang at redhat.com
Fri May 5 20:14:53 PDT 2023


Verified the kmemleak issue I reported:
https://lore.kernel.org/linux-nvme/CAHj4cs-nDaKzMx2txO4dbE+Mz9ePwLtU0e3egz+StmzOUgWUrA@mail.gmail.com/

Tested-by: Yi Zhang <yi.zhang at redhat.com>


On Fri, Apr 28, 2023 at 3:42 PM Chaitanya Kulkarni <kch at nvidia.com> wrote:
>
> Call dev_pm_qos_hide_latency_tolerance() in the error unwind patch to
> avoid following kmemleak:-
>
> blktests (master) # kmemleak-clear; ./check nvme/044;
> blktests (master) # kmemleak-scan ; kmemleak-show
> nvme/044 (Test bi-directional authentication)                [passed]
>     runtime  2.111s  ...  2.124s
> unreferenced object 0xffff888110c46240 (size 96):
>   comm "nvme", pid 33461, jiffies 4345365353 (age 75.586s)
>   hex dump (first 32 bytes):
>     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
>   backtrace:
>     [<0000000069ac2cec>] kmalloc_trace+0x25/0x90
>     [<000000006acc66d5>] dev_pm_qos_update_user_latency_tolerance+0x6f/0x100
>     [<00000000cc376ea7>] nvme_init_ctrl+0x38e/0x410 [nvme_core]
>     [<000000007df61b4b>] 0xffffffffc05e88b3
>     [<00000000d152b985>] 0xffffffffc05744cb
>     [<00000000f04a4041>] vfs_write+0xc5/0x3c0
>     [<00000000f9491baf>] ksys_write+0x5f/0xe0
>     [<000000001c46513d>] do_syscall_64+0x3b/0x90
>     [<00000000ecf348fe>] entry_SYSCALL_64_after_hwframe+0x72/0xdc
>
> Fixes: f50fff73d620 ("nvme: implement In-Band authentication")
> Signed-off-by: Chaitanya Kulkarni <kch at nvidia.com>
> ---
>  drivers/nvme/host/core.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 15607281baaa..90dc4b832200 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -5202,6 +5202,7 @@ int nvme_init_ctrl(struct nvme_ctrl *ctrl, struct device *dev,
>         return 0;
>  out_free_cdev:
>         nvme_fault_inject_fini(&ctrl->fault_inject);
> +       dev_pm_qos_hide_latency_tolerance(ctrl->device);
>         cdev_device_del(&ctrl->cdev, ctrl->device);
>  out_free_name:
>         nvme_put_ctrl(ctrl);
> --
> 2.40.0
>
>


--
Best Regards,
  Yi Zhang




More information about the Linux-nvme mailing list