Re: [PATCH v4] LoongArch: env: fix missing NULL checks for kstrdup

From: Huacai Chen

Date: Wed Mar 25 2026 - 22:56:03 EST


Applied, thanks.

Huacai

On Fri, Mar 20, 2026 at 1:39 PM Li Jun <lijun01@xxxxxxxxxx> wrote:
>
> 1.Replacing `of_find_node_by_path("/")` with `of_root` avoids multiple
> calls to `of_node_put()`.
> 2.Fixes potential kernel oops during early boot when memory
> allocation fails while parsing CPU model from device tree.
>
> --Replacing `of_find_node_by_path("/")` with `of_root`,
>
> Signed-off-by: Li Jun <lijun01@xxxxxxxxxx>
> ---
> arch/loongarch/kernel/env.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/arch/loongarch/kernel/env.c b/arch/loongarch/kernel/env.c
> index 841206fde3ab..652456768b55 100644
> --- a/arch/loongarch/kernel/env.c
> +++ b/arch/loongarch/kernel/env.c
> @@ -42,16 +42,15 @@ static int __init init_cpu_fullname(void)
> int cpu, ret;
> char *cpuname;
> const char *model;
> - struct device_node *root;
>
> /* Parsing cpuname from DTS model property */
> - root = of_find_node_by_path("/");
> - ret = of_property_read_string(root, "model", &model);
> + ret = of_property_read_string(of_root, "model", &model);
> if (ret == 0) {
> cpuname = kstrdup(model, GFP_KERNEL);
> + if (!cpuname)
> + return -ENOMEM;
> loongson_sysconf.cpuname = strsep(&cpuname, " ");
> }
> - of_node_put(root);
>
> if (loongson_sysconf.cpuname && !strncmp(loongson_sysconf.cpuname, "Loongson", 8)) {
> for (cpu = 0; cpu < NR_CPUS; cpu++)
> --
> 2.34.1
>
>