[PATCH 1/3] clk: exynos4: Make exynos4_plls static

Joe Perches joe at perches.com
Tue Aug 6 23:37:28 EDT 2013


On Wed, 2013-08-07 at 08:51 +0530, Sachin Kamat wrote:
> +CC Joe Perches
> 
> On 7 August 2013 01:32, Russell King - ARM Linux <linux at arm.linux.org.uk> wrote:
> > Also note:
> >
> > On Tue, Aug 06, 2013 at 05:01:13PM +0530, Sachin Kamat wrote:
> >> @@ -984,7 +984,7 @@ static __initdata struct of_device_id ext_clk_match[] = {
> >
> > For the declaration above...
> >
> >> -struct __initdata samsung_pll_clock exynos4_plls[nr_plls] = {
> >> +static struct __initdata samsung_pll_clock exynos4_plls[nr_plls] = {
> >
> > And this one... __initdata should come just before the '=', not at the
> > start, not in the middle and not before the variable.
> >
> > The reasoning is that with how you have it above, the attributes are
> > applied to the structure.  You want to apply the attributes to the
> > declaration instead, so it should come after the variable name.
> >
> > So, for example:
> >
> >         struct foo *foo __attribute__((section(".foo"))) = (void *)1;
> >
> > will place the "foo" variable into a section called ".foo", but:
> >
> >         struct __attribute__((section(".foo"))) foo *foo = (void *)1;
> >
> > will place "foo" into the normal .data section.
> >
> > So, the rule with variable declarations is that the __ specifiers we
> > have as macros in the kernel always come after the variable name being
> > declared and nowhere else.  We consider anywhere else buggy.
> 
> Thanks for this useful tip, Russell. There are several instances in
> the kernel where these attributes are used at the beginning of the
> variable declaration.
> 
> Probably it would be useful to add this to checkpatch. Joe?

I think Russell is using the royal "We".

http://en.wikipedia.org/wiki/Majestic_plural

There's no way for checkpatch to look at an __<foo> use
and determine it should be before or after a variable.

__scanf, __printf, __cold, etc are often place before
declarations.





More information about the linux-arm-kernel mailing list