Re: [RFC 2/2] clocksource: don't suspend/resume when unused

From: Daniel Lezcano
Date: Fri Jan 16 2015 - 05:39:26 EST


On 01/16/2015 11:35 AM, Alexandre Belloni wrote:
On 16/01/2015 at 11:23:32 +0100, Thomas Gleixner wrote :
On Fri, 16 Jan 2015, Alexandre Belloni wrote:

There is no point in calling suspend/resume for unused
clocksources.

Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx>
---
kernel/time/clocksource.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
index 920a4da58eb0..baea4e42ae90 100644
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -493,7 +493,7 @@ void clocksource_suspend(void)
struct clocksource *cs;

list_for_each_entry_reverse(cs, &clocksource_list, list)
- if (cs->suspend)
+ if (cs->suspend && (cs->flags & CLOCK_SOURCE_USED))
cs->suspend(cs);

This might be dangerous. If the clocksource has no enable/disable
callbacks, but suspend/resume, then you might leave it enabled across
suspend.


Isn't that already the case?
Right now, if you call clocksource_suspend, it doesn't matter whether
the clocksource has an enable or not, it will be suspended. Maybe I'm
mistaken but my patch doesn't seem to change that behaviour.

Actually, if there is no enable/disable callback, then CLOCK_SOURCE_USED will be never set, hence the condition will always fail and the suspend callback won't be called.


--
<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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/