Re: [PATCH V6 01/10] PM / Domains: Fix removal of a subdomain

Ulf Hansson
2016-02-29T12:13:40Z

On 26 February 2016 at 16:48, Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> wrote:
> Commit 30e7a65b3fdb ("PM / Domains: Ensure subdomain is not in use
> before removing") added a test to ensure that a subdomain is not is not
> a master to another subdomain or if any devices are using the subdomain
> before removing. This change incorrectly used the "slave_links" list to
> determine if the subdomain is a master to another subdomain, where it
> should have been using the "master_links" list instead. The
> "slave_links" list will never be empty for a subdomain and so a
> subdomain can never be removed. Fix this by testing if the
> "master_links" list is empty instead.
>
> Fixes: 30e7a65b3fdb ("PM / Domains: Ensure subdomain is not in use
> before removing")
>
> Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>

When you addressed the comments from Thierry, this also looks good to me.

Acked-by: Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>

Kind regards
Uffe

> ---
> drivers/base/power/domain.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
> index e8ca290dbf9d..ea9f2aa3fc33 100644
> --- a/drivers/base/power/domain.c
> +++ b/drivers/base/power/domain.c
> @@ -1382,7 +1382,7 @@ int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
> mutex_lock(&subdomain->lock);
> mutex_lock_nested(&genpd->lock, SINGLE_DEPTH_NESTING);
>
> - if (!list_empty(&subdomain->slave_links) || subdomain->device_count) {
> + if (!list_empty(&subdomain->master_links) || subdomain->device_count) {
> pr_warn("%s: unable to remove subdomain %s\n", genpd->name,
> subdomain->name);
> ret = -EBUSY;
> --
> 2.1.4
>