Add allocated strarray to device's resource list. This is a must to
automatically release strarray when the device disappears.
Fixes: acdb89b6c87a ("lib/string_helpers: Introduce managed variant of kasprintf_strarray()")
Signed-off-by: Puyou Lu <[email protected]>
---
Change since v1:
also set 'n' of strarray https://lore.kernel.org/lkml/[email protected]/
---
lib/string_helpers.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/string_helpers.c b/lib/string_helpers.c
index 4f877e9551d5..5ed3beb066e6 100644
--- a/lib/string_helpers.c
+++ b/lib/string_helpers.c
@@ -757,6 +757,9 @@ char **devm_kasprintf_strarray(struct device *dev, const char *prefix, size_t n)
return ERR_PTR(-ENOMEM);
}
+ ptr->n = n;
+ devres_add(dev, ptr);
+
return ptr->array;
}
EXPORT_SYMBOL_GPL(devm_kasprintf_strarray);
--
2.17.1
On Sat, May 07, 2022 at 11:45:16AM -0700, Andrew Morton wrote:
> On Fri, 6 May 2022 15:36:22 +0800 Puyou Lu <[email protected]> wrote:
>
> > Add allocated strarray to device's resource list. This is a must to
> > automatically release strarray when the device disappears.
>
> So at present we have a memory leak?
Yes.
> Is this likely to be serious enough to justify backporting the fix into
> -stable kernels?
I think so, however there are only few drivers are using it, hence it's
serious, but rare.
--
With Best Regards,
Andy Shevchenko
On Fri, May 6, 2022 at 9:36 AM Puyou Lu <[email protected]> wrote:
>
> Add allocated strarray to device's resource list. This is a must to
> automatically release strarray when the device disappears.
LGTM,
Reviewed-by: Andy Shevchenko <[email protected]>
Thanks!
> Fixes: acdb89b6c87a ("lib/string_helpers: Introduce managed variant of kasprintf_strarray()")
> Signed-off-by: Puyou Lu <[email protected]>
>
> ---
>
> Change since v1:
> also set 'n' of strarray https://lore.kernel.org/lkml/[email protected]/
>
> ---
> lib/string_helpers.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/lib/string_helpers.c b/lib/string_helpers.c
> index 4f877e9551d5..5ed3beb066e6 100644
> --- a/lib/string_helpers.c
> +++ b/lib/string_helpers.c
> @@ -757,6 +757,9 @@ char **devm_kasprintf_strarray(struct device *dev, const char *prefix, size_t n)
> return ERR_PTR(-ENOMEM);
> }
>
> + ptr->n = n;
> + devres_add(dev, ptr);
> +
> return ptr->array;
> }
> EXPORT_SYMBOL_GPL(devm_kasprintf_strarray);
> --
> 2.17.1
>
--
With Best Regards,
Andy Shevchenko
On Fri, 6 May 2022 15:36:22 +0800 Puyou Lu <[email protected]> wrote:
> Add allocated strarray to device's resource list. This is a must to
> automatically release strarray when the device disappears.
So at present we have a memory leak?
Is this likely to be serious enough to justify backporting the fix into
-stable kernels?
> --- a/lib/string_helpers.c
> +++ b/lib/string_helpers.c
> @@ -757,6 +757,9 @@ char **devm_kasprintf_strarray(struct device *dev, const char *prefix, size_t n)
> return ERR_PTR(-ENOMEM);
> }
>
> + ptr->n = n;
> + devres_add(dev, ptr);
> +
> return ptr->array;
> }
> EXPORT_SYMBOL_GPL(devm_kasprintf_strarray);