Messages in this thread | | | Subject | Re: [PATCH v12 1/4] PM / Domains: Add a generic data pointer to the genpd_power_state struct | From | Daniel Lezcano <> | Date | Thu, 21 Mar 2019 10:52:53 +0100 |
| |
On 21/03/2019 10:36, Ulf Hansson wrote: > On Thu, 21 Mar 2019 at 08:47, Daniel Lezcano <daniel.lezcano@linaro.org> wrote:
[ ... ]
>>> cancel_work_sync(&genpd->power_off_work); >>> - kfree(genpd->free); >>> + if (genpd->free_states) >> >> Is this test necessary as the free_states function is initialized with >> the genpd_set_default_power_state() in any case? > > That's the case when the genpd provider did not allocate states, so > then we know genpd deals with this properly for us. > > In the other case, when genpd provider has allocates states, then we > need to check that the provider has assigned the ->free_states() > callback before we invokes it, as there is no guarantees that it had. > > I was initially tempted to do this check already at pm_genpd_init(), > as it would allow us to check for the error condition and return an > error code if it's not been assigned. However, that requires me to > change all providers that currently "allocates" their states, so that > isn't really a smooth way forward. Perhaps, we should simply print a > message to the log about this condition in pm_genpd_init(), as to > start with!? I can add a patch on top doing that.
Yes, that would make sense to track those providers which do not initialize the free field.
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
-- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog
| |