* [RFC PATCH] PM / Domains: Ensure subdomain is not in use before removing
@ 2015-08-27 9:21 Jon Hunter
2015-08-27 11:37 ` Geert Uytterhoeven
2015-08-28 17:38 ` Kevin Hilman
0 siblings, 2 replies; 5+ messages in thread
From: Jon Hunter @ 2015-08-27 9:21 UTC (permalink / raw)
To: Rafael J. Wysocki, Kevin Hilman, Ulf Hansson; +Cc: geert, linux-pm, Jon Hunter
The function pm_genpd_remove_subdomain() removes a subdomain from a
generic PM domain, however, it does not check if the subdomain has any
slave domains or device attached before doing so. Therefore, add a test
to verify that the subdomain does not have any slave domains associated
or any device attached before removing.
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
---
drivers/base/power/domain.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index 27888a90ca98..a3ed71d8129a 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -1469,6 +1469,11 @@ int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
mutex_lock(&genpd->lock);
+ if (!list_empty(&subdomain->slave_links) || subdomain->device_count) {
+ ret = -EBUSY;
+ goto out;
+ }
+
list_for_each_entry(link, &genpd->master_links, master_node) {
if (link->slave != subdomain)
continue;
@@ -1487,6 +1492,7 @@ int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
break;
}
+out:
mutex_unlock(&genpd->lock);
return ret;
--
2.1.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [RFC PATCH] PM / Domains: Ensure subdomain is not in use before removing
2015-08-27 9:21 [RFC PATCH] PM / Domains: Ensure subdomain is not in use before removing Jon Hunter
@ 2015-08-27 11:37 ` Geert Uytterhoeven
2015-08-27 11:47 ` Jon Hunter
2015-08-28 17:38 ` Kevin Hilman
1 sibling, 1 reply; 5+ messages in thread
From: Geert Uytterhoeven @ 2015-08-27 11:37 UTC (permalink / raw)
To: Jon Hunter; +Cc: Rafael J. Wysocki, Kevin Hilman, Ulf Hansson, Linux PM list
Hi Jon,
On Thu, Aug 27, 2015 at 11:21 AM, Jon Hunter <jonathanh@nvidia.com> wrote:
> The function pm_genpd_remove_subdomain() removes a subdomain from a
> generic PM domain, however, it does not check if the subdomain has any
> slave domains or device attached before doing so. Therefore, add a test
> to verify that the subdomain does not have any slave domains associated
> or any device attached before removing.
So far no-one ran into this, as there are no callers of
pm_genpd_remove_subdomain() in mainline or -next.
Do you plan to add a caller?
> Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
> ---
> drivers/base/power/domain.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
> index 27888a90ca98..a3ed71d8129a 100644
> --- a/drivers/base/power/domain.c
> +++ b/drivers/base/power/domain.c
> @@ -1469,6 +1469,11 @@ int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
>
> mutex_lock(&genpd->lock);
>
> + if (!list_empty(&subdomain->slave_links) || subdomain->device_count) {
> + ret = -EBUSY;
> + goto out;
> + }
> +
> list_for_each_entry(link, &genpd->master_links, master_node) {
> if (link->slave != subdomain)
> continue;
> @@ -1487,6 +1492,7 @@ int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
> break;
> }
>
> +out:
> mutex_unlock(&genpd->lock);
>
> return ret;
> --
> 2.1.4
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFC PATCH] PM / Domains: Ensure subdomain is not in use before removing
2015-08-27 11:37 ` Geert Uytterhoeven
@ 2015-08-27 11:47 ` Jon Hunter
0 siblings, 0 replies; 5+ messages in thread
From: Jon Hunter @ 2015-08-27 11:47 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Rafael J. Wysocki, Kevin Hilman, Ulf Hansson, Linux PM list
Hi Geert,
On 27/08/15 12:37, Geert Uytterhoeven wrote:
> Hi Jon,
>
> On Thu, Aug 27, 2015 at 11:21 AM, Jon Hunter <jonathanh@nvidia.com> wrote:
>> The function pm_genpd_remove_subdomain() removes a subdomain from a
>> generic PM domain, however, it does not check if the subdomain has any
>> slave domains or device attached before doing so. Therefore, add a test
>> to verify that the subdomain does not have any slave domains associated
>> or any device attached before removing.
>
> So far no-one ran into this, as there are no callers of
> pm_genpd_remove_subdomain() in mainline or -next.
>
> Do you plan to add a caller?
Yes exactly. However, given that the API was present I thought why not
fix it now or at least get some feedback on this.
I have also noticed that there is no function to remove a pm-domain (ie.
reverse of pm_genpd_init()). I assume that currently people add
pm-domains and never remove them, which makes sense, however the
scenario I am trying to solve is allowing the registering of pm-domains
to be deferred if something is not yet present (ie. a regulator).
Cheers
Jon
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information. Any unauthorized review, use, disclosure or distribution
is prohibited. If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFC PATCH] PM / Domains: Ensure subdomain is not in use before removing
2015-08-27 9:21 [RFC PATCH] PM / Domains: Ensure subdomain is not in use before removing Jon Hunter
2015-08-27 11:37 ` Geert Uytterhoeven
@ 2015-08-28 17:38 ` Kevin Hilman
2015-09-03 8:08 ` Jon Hunter
1 sibling, 1 reply; 5+ messages in thread
From: Kevin Hilman @ 2015-08-28 17:38 UTC (permalink / raw)
To: Jon Hunter; +Cc: Rafael J. Wysocki, Ulf Hansson, geert, linux-pm
Jon Hunter <jonathanh@nvidia.com> writes:
> The function pm_genpd_remove_subdomain() removes a subdomain from a
> generic PM domain, however, it does not check if the subdomain has any
> slave domains or device attached before doing so. Therefore, add a test
> to verify that the subdomain does not have any slave domains associated
> or any device attached before removing.
>
> Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
> ---
> drivers/base/power/domain.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
> index 27888a90ca98..a3ed71d8129a 100644
> --- a/drivers/base/power/domain.c
> +++ b/drivers/base/power/domain.c
> @@ -1469,6 +1469,11 @@ int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
>
> mutex_lock(&genpd->lock);
>
> + if (!list_empty(&subdomain->slave_links) || subdomain->device_count) {
maybe a pr_warn() or similar is appropriate here?
> + ret = -EBUSY;
> + goto out;
> + }
> +
... otherwise looks like a good check to add.
Acked-by: Kevin Hilman <khilman@linaro.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFC PATCH] PM / Domains: Ensure subdomain is not in use before removing
2015-08-28 17:38 ` Kevin Hilman
@ 2015-09-03 8:08 ` Jon Hunter
0 siblings, 0 replies; 5+ messages in thread
From: Jon Hunter @ 2015-09-03 8:08 UTC (permalink / raw)
To: Kevin Hilman; +Cc: Rafael J. Wysocki, Ulf Hansson, geert, linux-pm
On 28/08/15 18:38, Kevin Hilman wrote:
> Jon Hunter <jonathanh@nvidia.com> writes:
>
>> The function pm_genpd_remove_subdomain() removes a subdomain from a
>> generic PM domain, however, it does not check if the subdomain has any
>> slave domains or device attached before doing so. Therefore, add a test
>> to verify that the subdomain does not have any slave domains associated
>> or any device attached before removing.
>>
>> Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
>> ---
>> drivers/base/power/domain.c | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
>> index 27888a90ca98..a3ed71d8129a 100644
>> --- a/drivers/base/power/domain.c
>> +++ b/drivers/base/power/domain.c
>> @@ -1469,6 +1469,11 @@ int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
>>
>> mutex_lock(&genpd->lock);
>>
>> + if (!list_empty(&subdomain->slave_links) || subdomain->device_count) {
>
> maybe a pr_warn() or similar is appropriate here?
Thanks, good suggestion. Will add.
>> + ret = -EBUSY;
>> + goto out;
>> + }
>> +
>
> ... otherwise looks like a good check to add.
>
> Acked-by: Kevin Hilman <khilman@linaro.org>
Cheers
Jon
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information. Any unauthorized review, use, disclosure or distribution
is prohibited. If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-09-03 8:08 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-27 9:21 [RFC PATCH] PM / Domains: Ensure subdomain is not in use before removing Jon Hunter
2015-08-27 11:37 ` Geert Uytterhoeven
2015-08-27 11:47 ` Jon Hunter
2015-08-28 17:38 ` Kevin Hilman
2015-09-03 8:08 ` Jon Hunter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).