2020-12-26 07:30:21

by Dinghao Liu

[permalink] [raw]
Subject: [PATCH] habanalabs: Fix memleak in hl_device_reset

When kzalloc() fails, we should execute hl_mmu_fini()
to release the MMU module. It's the same when
hl_ctx_init() fails.

Signed-off-by: Dinghao Liu <[email protected]>
---
drivers/misc/habanalabs/common/device.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c
index 5871162a8442..e5028890ead1 100644
--- a/drivers/misc/habanalabs/common/device.c
+++ b/drivers/misc/habanalabs/common/device.c
@@ -1092,6 +1092,7 @@ int hl_device_reset(struct hl_device *hdev, bool hard_reset,
GFP_KERNEL);
if (!hdev->kernel_ctx) {
rc = -ENOMEM;
+ hl_mmu_fini(hdev);
goto out_err;
}

@@ -1103,6 +1104,7 @@ int hl_device_reset(struct hl_device *hdev, bool hard_reset,
"failed to init kernel ctx in hard reset\n");
kfree(hdev->kernel_ctx);
hdev->kernel_ctx = NULL;
+ hl_mmu_fini(hdev);
goto out_err;
}
}
--
2.17.1


2020-12-29 21:34:09

by Oded Gabbay

[permalink] [raw]
Subject: Re: [PATCH] habanalabs: Fix memleak in hl_device_reset

On Sat, Dec 26, 2020 at 9:32 AM Dinghao Liu <[email protected]> wrote:
>
> When kzalloc() fails, we should execute hl_mmu_fini()
> to release the MMU module. It's the same when
> hl_ctx_init() fails.
>
> Signed-off-by: Dinghao Liu <[email protected]>
> ---
> drivers/misc/habanalabs/common/device.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c
> index 5871162a8442..e5028890ead1 100644
> --- a/drivers/misc/habanalabs/common/device.c
> +++ b/drivers/misc/habanalabs/common/device.c
> @@ -1092,6 +1092,7 @@ int hl_device_reset(struct hl_device *hdev, bool hard_reset,
> GFP_KERNEL);
> if (!hdev->kernel_ctx) {
> rc = -ENOMEM;
> + hl_mmu_fini(hdev);
> goto out_err;
> }
>
> @@ -1103,6 +1104,7 @@ int hl_device_reset(struct hl_device *hdev, bool hard_reset,
> "failed to init kernel ctx in hard reset\n");
> kfree(hdev->kernel_ctx);
> hdev->kernel_ctx = NULL;
> + hl_mmu_fini(hdev);
> goto out_err;
> }
> }
> --
> 2.17.1
>
Thanks!

This patch is:
Reviewed-by: Oded Gabbay <[email protected]>

Applied to -fixes
Oded