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

From: Rafael J. Wysocki
Date: Thu Jul 20 2023 - 14:28:56 EST


On Tue, Jul 18, 2023 at 3:20 PM Sudeep Holla <sudeep.holla@xxxxxxx> wrote:
>
> 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>

Applied as 6.6 material, thanks!