Message ID | 1473935963-8837-1-git-send-email-tomeu.vizoso@collabora.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
On 15/09/16 11:39, Tomeu Vizoso wrote: > In platforms such as Rockchip's, the array of domains isn't always > filled without holes, as which domains are present depend on the > particular SoC revision. > > By allowing holes to be in the array, such SoCs can still use a single > set of constants to index the array of power domains. > > Fixes: 0159ec670763 ("PM / Domains: Verify the PM domain is present when adding a provider") > Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> > Cc: Jon Hunter <jonathanh@nvidia.com> > Cc: Heiko Stuebner <heiko@sntech.de> > --- > drivers/base/power/domain.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c > index b0cf46dcae73..ce3f483ec67b 100644 > --- a/drivers/base/power/domain.c > +++ b/drivers/base/power/domain.c > @@ -1581,6 +1581,8 @@ int of_genpd_add_provider_onecell(struct device_node *np, > mutex_lock(&gpd_list_lock); > > for (i = 0; i < data->num_domains; i++) { > + if (!data->domains[i]) > + continue; > if (!pm_genpd_present(data->domains[i])) > goto error; > Sounds reasonable and sorry I had not thought of this. Can you also make sure we check that !data->domains[i] in the error path as well or potentially we could have a NULL pointer dereference in the case of an actual error. Cheers Jon
diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index b0cf46dcae73..ce3f483ec67b 100644 --- a/drivers/base/power/domain.c +++ b/drivers/base/power/domain.c @@ -1581,6 +1581,8 @@ int of_genpd_add_provider_onecell(struct device_node *np, mutex_lock(&gpd_list_lock); for (i = 0; i < data->num_domains; i++) { + if (!data->domains[i]) + continue; if (!pm_genpd_present(data->domains[i])) goto error;
In platforms such as Rockchip's, the array of domains isn't always filled without holes, as which domains are present depend on the particular SoC revision. By allowing holes to be in the array, such SoCs can still use a single set of constants to index the array of power domains. Fixes: 0159ec670763 ("PM / Domains: Verify the PM domain is present when adding a provider") Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Cc: Jon Hunter <jonathanh@nvidia.com> Cc: Heiko Stuebner <heiko@sntech.de> --- drivers/base/power/domain.c | 2 ++ 1 file changed, 2 insertions(+)