Re: [PATCH v2] powercap: arm_scmi: Remove recursion while parsing zones

From: Sudeep Holla
Date: Tue Jul 18 2023 - 09:20:55 EST


On Tue, Jul 18, 2023 at 11:17:26AM +0100, Cristian Marussi wrote:
> Powercap zones can be defined as arranged in a hierarchy of trees and when
> registering a zone with powercap_register_zone(), the kernel powercap
> subsystem expects this to happen starting from the root zones down to the
> leaves; on the other side, de-registration by powercap_deregister_zone()
> must begin from the leaf zones.
>
> Available SCMI powercap zones are retrieved dynamically from the platform
> at probe time and, while any defined hierarchy between the zones is
> described properly in the zones descriptor, the platform returns the
> availables zones with no particular well-defined order: as a consequence,
> the trees possibly composing the hierarchy of zones have to be somehow
> walked properly to register the retrieved zones from the root.
>
> Currently the ARM SCMI Powercap driver walks the zones using a recursive
> algorithm; this approach, even though correct and tested can lead to kernel
> stack overflow when processing a returned hierarchy of zones composed by
> particularly high trees.
>
> Avoid possible kernel stack overflow by substituting the recursive approach
> with an iterative one supported by a dynamically allocated stack-like data
> structure.
>
> Cc: Rafael J. Wysocki <rafael@xxxxxxxxxx>
> Fixes: b55eef5226b7 ("powercap: arm_scmi: Add SCMI Powercap based driver")

Makes sense,

Acked-by: Sudeep Holla <sudeep.holla@xxxxxxx>

--
Regards,
Sudeep