Thread (9 messages) flat view 9 messages, 3 authors, 2013-08-24

[PATCH v3 3/5] clk: Add common __clk_get(), __clk_put() implementations

From: sylvester.nawrocki@gmail.com (Sylwester Nawrocki)
Date: 2013-08-24 15:16:51
Also in: linux-mips, linux-sh, lkml

On 08/24/2013 01:13 AM, Russell King - ARM Linux wrote:
On Fri, Aug 23, 2013 at 05:03:45PM +0200, Sylwester Nawrocki wrote:
quoted
quoted
 This patch adds common __clk_get(), __clk_put() clkdev helpers which
 replace their platform specific counterparts when the common clock
 API is enabled.

 The owner module pointer field is added to struct clk so a reference
 to the clock supplier module can be taken by the clock consumers.

 Signed-off-by: Sylwester Nawrocki[off-list ref]
 Signed-off-by: Kyungmin Park[off-list ref]
I'm mostly happy with this now.
quoted
quoted
 +int __clk_get(struct clk *clk)
 +{
 +	if (clk&&  !try_module_get(clk->owner))
 +		return 0;
 +
 +	return 1;
 +}
 +EXPORT_SYMBOL(__clk_get);
 +
 +void __clk_put(struct clk *clk)
 +{
 +	if (WARN_ON_ONCE(IS_ERR(clk)))
 +		return;
 +
 +	if (clk)
 +		module_put(clk->owner);
 +}
 +EXPORT_SYMBOL(__clk_put);
Why are these exported?  clkdev can only be built into the kernel, as can
the common clk framework - they can't be modular.  So why would a module
wish to access these directly?
I must have been mislead by the fact that some ARM sub-architecture exports
those, have added them initially and then didn't think enough about it and
left these in. Actually, at some point I noticed the exporting is not 
needed,
but never did get around to remove it. Thanks. The updated series to 
follow.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help