cacheinfo: Return error code in init_of_cache_level()
Make init_of_cache_level() return an error code when the cache information parsing fails to help detecting missing information. init_of_cache_level() is only called for riscv. Returning an error code instead of 0 will prevent detect_cache_attributes() to allocate memory if an incomplete DT is parsed. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> Acked-by: Palmer Dabbelt <palmer@rivosinc.com> Link: https://lore.kernel.org/r/20230104183033.755668-3-pierre.gondois@arm.com Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
This commit is contained in:
parent
c3719bd9ee
commit
8844c3df00
|
@ -251,11 +251,11 @@ int init_of_cache_level(unsigned int cpu)
|
|||
of_node_put(prev);
|
||||
prev = np;
|
||||
if (!of_device_is_compatible(np, "cache"))
|
||||
break;
|
||||
goto err_out;
|
||||
if (of_property_read_u32(np, "cache-level", &level))
|
||||
break;
|
||||
goto err_out;
|
||||
if (level <= levels)
|
||||
break;
|
||||
goto err_out;
|
||||
if (of_property_read_bool(np, "cache-size"))
|
||||
++leaves;
|
||||
if (of_property_read_bool(np, "i-cache-size"))
|
||||
|
@ -270,6 +270,10 @@ int init_of_cache_level(unsigned int cpu)
|
|||
this_cpu_ci->num_leaves = leaves;
|
||||
|
||||
return 0;
|
||||
|
||||
err_out:
|
||||
of_node_put(np);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
#else
|
||||
|
|
Loading…
Reference in New Issue