diff mbox

<linux/of_platform.h>: fix compilation warnings with DT disabled

Message ID 201302190258.25726.sergei.shtylyov@cogentembedded.com (mailing list archive)
State Awaiting Upstream
Headers show

Commit Message

Sergei Shtylyov Feb. 18, 2013, 11:58 p.m. UTC
Fix the following compilation warnings (in Simon Horman's renesas.git repo):

In file included from arch/arm/mach-shmobile/setup-r8a7779.c:24:0:
include/linux/of_platform.h:107:13: warning: ‘struct of_device_id’ declared
inside parameter list [enabled by default]
include/linux/of_platform.h:107:13: warning: its scope is only this definition
or declaration, which is probably not what you want [enabled by default]
include/linux/of_platform.h:107:13: warning: ‘struct device_node’ declared
inside parameter list [enabled by default]

<linux/of_platform.h> only #include's headers with definitions of the above
mentioned structures if CONFIG_OF_DEVICE=y but uses them even if not. One
solution is to move some #include's out of #ifdef CONFIG_OF_DEVICE and use
incomplete declarations for the rest of the structures where the #ifdef move
doesn't help...

Reported-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

---
Actually, it compiles eve without 'struct device_node' declared, I haven't
found the reason of this, so left it there...

 include/linux/of_platform.h |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Simon Horman March 1, 2013, 7:09 a.m. UTC | #1
On Tue, Feb 19, 2013 at 02:58:25AM +0300, Sergei Shtylyov wrote:
> Fix the following compilation warnings (in Simon Horman's renesas.git repo):
> 
> In file included from arch/arm/mach-shmobile/setup-r8a7779.c:24:0:
> include/linux/of_platform.h:107:13: warning: ‘struct of_device_id’ declared
> inside parameter list [enabled by default]
> include/linux/of_platform.h:107:13: warning: its scope is only this definition
> or declaration, which is probably not what you want [enabled by default]
> include/linux/of_platform.h:107:13: warning: ‘struct device_node’ declared
> inside parameter list [enabled by default]
> 
> <linux/of_platform.h> only #include's headers with definitions of the above
> mentioned structures if CONFIG_OF_DEVICE=y but uses them even if not. One
> solution is to move some #include's out of #ifdef CONFIG_OF_DEVICE and use
> incomplete declarations for the rest of the structures where the #ifdef move
> doesn't help...
> 
> Reported-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

Reviewed-by: Simon Horman <horms+renesas@verge.net.au>

Grant, could you consider taking this patch?

> ---
> Actually, it compiles eve without 'struct device_node' declared, I haven't
> found the reason of this, so left it there...
> 
>  include/linux/of_platform.h |    5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> Index: linux/include/linux/of_platform.h
> ===================================================================
> --- linux.orig/include/linux/of_platform.h
> +++ linux/include/linux/of_platform.h
> @@ -11,9 +11,10 @@
>   *
>   */
>  
> -#ifdef CONFIG_OF_DEVICE
>  #include <linux/device.h>
>  #include <linux/mod_devicetable.h>
> +
> +#ifdef CONFIG_OF_DEVICE
>  #include <linux/pm.h>
>  #include <linux/of_device.h>
>  #include <linux/platform_device.h>
> @@ -100,7 +101,7 @@ extern int of_platform_populate(struct d
>  
>  #if !defined(CONFIG_OF_ADDRESS)
>  struct of_dev_auxdata;
> -struct device;
> +struct device_node;
>  static inline int of_platform_populate(struct device_node *root,
>  					const struct of_device_id *matches,
>  					const struct of_dev_auxdata *lookup,
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring March 1, 2013, 1:46 p.m. UTC | #2
On 03/01/2013 01:09 AM, Simon Horman wrote:
> On Tue, Feb 19, 2013 at 02:58:25AM +0300, Sergei Shtylyov wrote:
>> Fix the following compilation warnings (in Simon Horman's renesas.git repo):
>>
>> In file included from arch/arm/mach-shmobile/setup-r8a7779.c:24:0:
>> include/linux/of_platform.h:107:13: warning: ‘struct of_device_id’ declared
>> inside parameter list [enabled by default]
>> include/linux/of_platform.h:107:13: warning: its scope is only this definition
>> or declaration, which is probably not what you want [enabled by default]
>> include/linux/of_platform.h:107:13: warning: ‘struct device_node’ declared
>> inside parameter list [enabled by default]
>>
>> <linux/of_platform.h> only #include's headers with definitions of the above
>> mentioned structures if CONFIG_OF_DEVICE=y but uses them even if not. One
>> solution is to move some #include's out of #ifdef CONFIG_OF_DEVICE and use
>> incomplete declarations for the rest of the structures where the #ifdef move
>> doesn't help...
>>
>> Reported-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> 
> Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
> 
> Grant, could you consider taking this patch?

Yes, I can, but I don't seem to have the original patch. Can you send it
again.

>> ---
>> Actually, it compiles eve without 'struct device_node' declared, I haven't
>> found the reason of this, so left it there...

device.h has a forward declaration of it.

Rob
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring March 1, 2013, 1:48 p.m. UTC | #3
On 03/01/2013 07:46 AM, Rob Herring wrote:
> On 03/01/2013 01:09 AM, Simon Horman wrote:
>> On Tue, Feb 19, 2013 at 02:58:25AM +0300, Sergei Shtylyov wrote:
>>> Fix the following compilation warnings (in Simon Horman's renesas.git repo):
>>>
>>> In file included from arch/arm/mach-shmobile/setup-r8a7779.c:24:0:
>>> include/linux/of_platform.h:107:13: warning: ‘struct of_device_id’ declared
>>> inside parameter list [enabled by default]
>>> include/linux/of_platform.h:107:13: warning: its scope is only this definition
>>> or declaration, which is probably not what you want [enabled by default]
>>> include/linux/of_platform.h:107:13: warning: ‘struct device_node’ declared
>>> inside parameter list [enabled by default]
>>>
>>> <linux/of_platform.h> only #include's headers with definitions of the above
>>> mentioned structures if CONFIG_OF_DEVICE=y but uses them even if not. One
>>> solution is to move some #include's out of #ifdef CONFIG_OF_DEVICE and use
>>> incomplete declarations for the rest of the structures where the #ifdef move
>>> doesn't help...
>>>
>>> Reported-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
>>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
>>
>> Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
>>
>> Grant, could you consider taking this patch?
> 
> Yes, I can, but I don't seem to have the original patch. Can you send it
> again.

Nevermind. Found it. I'll apply it.

Rob

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sergei Shtylyov March 1, 2013, 1:55 p.m. UTC | #4
Hello.

On 01-03-2013 17:48, Rob Herring wrote:

>>>> Fix the following compilation warnings (in Simon Horman's renesas.git repo):

>>>> In file included from arch/arm/mach-shmobile/setup-r8a7779.c:24:0:
>>>> include/linux/of_platform.h:107:13: warning: ‘struct of_device_id’ declared
>>>> inside parameter list [enabled by default]
>>>> include/linux/of_platform.h:107:13: warning: its scope is only this definition
>>>> or declaration, which is probably not what you want [enabled by default]
>>>> include/linux/of_platform.h:107:13: warning: ‘struct device_node’ declared
>>>> inside parameter list [enabled by default]

>>>> <linux/of_platform.h> only #include's headers with definitions of the above
>>>> mentioned structures if CONFIG_OF_DEVICE=y but uses them even if not. One
>>>> solution is to move some #include's out of #ifdef CONFIG_OF_DEVICE and use
>>>> incomplete declarations for the rest of the structures where the #ifdef move
>>>> doesn't help...

>>>> Reported-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
>>>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

>>> Reviewed-by: Simon Horman <horms+renesas@verge.net.au>

>>> Grant, could you consider taking this patch?

>> Yes, I can, but I don't seem to have the original patch. Can you send it
>> again.

> Nevermind. Found it. I'll apply it.

    Will you drop 'struct device_node' declaration then or should I resend? In 
fact, I think I should better resend it with the changelog somewhat edited.

> Rob

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring March 1, 2013, 2:02 p.m. UTC | #5
On 03/01/2013 07:55 AM, Sergei Shtylyov wrote:
> Hello.
> 
> On 01-03-2013 17:48, Rob Herring wrote:
> 
>>>>> Fix the following compilation warnings (in Simon Horman's
>>>>> renesas.git repo):
> 
>>>>> In file included from arch/arm/mach-shmobile/setup-r8a7779.c:24:0:
>>>>> include/linux/of_platform.h:107:13: warning: ‘struct of_device_id’
>>>>> declared
>>>>> inside parameter list [enabled by default]
>>>>> include/linux/of_platform.h:107:13: warning: its scope is only this
>>>>> definition
>>>>> or declaration, which is probably not what you want [enabled by
>>>>> default]
>>>>> include/linux/of_platform.h:107:13: warning: ‘struct device_node’
>>>>> declared
>>>>> inside parameter list [enabled by default]
> 
>>>>> <linux/of_platform.h> only #include's headers with definitions of
>>>>> the above
>>>>> mentioned structures if CONFIG_OF_DEVICE=y but uses them even if
>>>>> not. One
>>>>> solution is to move some #include's out of #ifdef CONFIG_OF_DEVICE
>>>>> and use
>>>>> incomplete declarations for the rest of the structures where the
>>>>> #ifdef move
>>>>> doesn't help...
> 
>>>>> Reported-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
>>>>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> 
>>>> Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
> 
>>>> Grant, could you consider taking this patch?
> 
>>> Yes, I can, but I don't seem to have the original patch. Can you send it
>>> again.
> 
>> Nevermind. Found it. I'll apply it.
> 
>    Will you drop 'struct device_node' declaration then or should I
> resend? In fact, I think I should better resend it with the changelog
> somewhat edited.

No, I plan to leave it as is and not rely on device.h by chance
declaring device_node.

Rob

> 
>> Rob
> 
> WBR, Sergei
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sergei Shtylyov May 16, 2013, 8:58 p.m. UTC | #6
Hello.

On 03/01/2013 05:02 PM, Rob Herring wrote:

>>>>>> Fix the following compilation warnings (in Simon Horman's
>>>>>> renesas.git repo):
>>>>>> In file included from arch/arm/mach-shmobile/setup-r8a7779.c:24:0:
>>>>>> include/linux/of_platform.h:107:13: warning: ‘struct of_device_id’
>>>>>> declared
>>>>>> inside parameter list [enabled by default]
>>>>>> include/linux/of_platform.h:107:13: warning: its scope is only this
>>>>>> definition
>>>>>> or declaration, which is probably not what you want [enabled by
>>>>>> default]
>>>>>> include/linux/of_platform.h:107:13: warning: ‘struct device_node’
>>>>>> declared
>>>>>> inside parameter list [enabled by default]
>>>>>> <linux/of_platform.h> only #include's headers with definitions of
>>>>>> the above
>>>>>> mentioned structures if CONFIG_OF_DEVICE=y but uses them even if
>>>>>> not. One
>>>>>> solution is to move some #include's out of #ifdef CONFIG_OF_DEVICE
>>>>>> and use
>>>>>> incomplete declarations for the rest of the structures where the
>>>>>> #ifdef move
>>>>>> doesn't help...
>>>>>> Reported-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
>>>>>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
>>>>> Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
>>>>> Grant, could you consider taking this patch?
>>>> Yes, I can, but I don't seem to have the original patch. Can you send it
>>>> again.
>>> Nevermind. Found it. I'll apply it.
>>     Will you drop 'struct device_node' declaration then or should I
>> resend? In fact, I think I should better resend it with the changelog
>> somewhat edited.
> No, I plan to leave it as is and not rely on device.h by chance
> declaring device_node.

     I hoped to see this fix in 3.10-rc1. Is there any hope to see it in 
3.10-rc's?
The code it fixes the warnings in is already in Linus tree.

>
>>> Rob

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring May 16, 2013, 10:44 p.m. UTC | #7
On Thu, May 16, 2013 at 3:58 PM, Sergei Shtylyov
<sergei.shtylyov@cogentembedded.com> wrote:
> Hello.
>
>
> On 03/01/2013 05:02 PM, Rob Herring wrote:
>
>>>>>>> Fix the following compilation warnings (in Simon Horman's
>>>>>>> renesas.git repo):
>>>>>>> In file included from arch/arm/mach-shmobile/setup-r8a7779.c:24:0:
>>>>>>> include/linux/of_platform.h:107:13: warning: ‘struct of_device_id’
>>>>>>> declared
>>>>>>> inside parameter list [enabled by default]
>>>>>>> include/linux/of_platform.h:107:13: warning: its scope is only this
>>>>>>> definition
>>>>>>> or declaration, which is probably not what you want [enabled by
>>>>>>> default]
>>>>>>> include/linux/of_platform.h:107:13: warning: ‘struct device_node’
>>>>>>> declared
>>>>>>> inside parameter list [enabled by default]
>>>>>>> <linux/of_platform.h> only #include's headers with definitions of
>>>>>>> the above
>>>>>>> mentioned structures if CONFIG_OF_DEVICE=y but uses them even if
>>>>>>> not. One
>>>>>>> solution is to move some #include's out of #ifdef CONFIG_OF_DEVICE
>>>>>>> and use
>>>>>>> incomplete declarations for the rest of the structures where the
>>>>>>> #ifdef move
>>>>>>> doesn't help...
>>>>>>> Reported-by: Vladimir Barinov <vladimir.barinov@cogentembedded.com>
>>>>>>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
>>>>>>
>>>>>> Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
>>>>>> Grant, could you consider taking this patch?
>>>>>
>>>>> Yes, I can, but I don't seem to have the original patch. Can you send
>>>>> it
>>>>> again.
>>>>
>>>> Nevermind. Found it. I'll apply it.
>>>
>>>     Will you drop 'struct device_node' declaration then or should I
>>> resend? In fact, I think I should better resend it with the changelog
>>> somewhat edited.
>>
>> No, I plan to leave it as is and not rely on device.h by chance
>> declaring device_node.
>
>
>     I hoped to see this fix in 3.10-rc1. Is there any hope to see it in
> 3.10-rc's?
> The code it fixes the warnings in is already in Linus tree.

So I had this queued up, but Grant did not send DT update to Linus for
3.10. The main thing we had was the preprocessor support and that went
thru arm-soc tree. I plan to send this and other fixes to Linus for
3.10.

Rob
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Grant Likely May 17, 2013, 4:49 p.m. UTC | #8
On Thu, May 16, 2013 at 11:44 PM, Rob Herring <robherring2@gmail.com> wrote:
>>     I hoped to see this fix in 3.10-rc1. Is there any hope to see it in
>> 3.10-rc's?
>> The code it fixes the warnings in is already in Linus tree.
>
> So I had this queued up, but Grant did not send DT update to Linus for
> 3.10. The main thing we had was the preprocessor support and that went
> thru arm-soc tree. I plan to send this and other fixes to Linus for
> 3.10.

I got gun shy from the gpio stuff and fixated on better testing of my
tree. Everything in my tree is bug fixes so I'll be sending the pull
request today

g.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

Index: linux/include/linux/of_platform.h
===================================================================
--- linux.orig/include/linux/of_platform.h
+++ linux/include/linux/of_platform.h
@@ -11,9 +11,10 @@ 
  *
  */
 
-#ifdef CONFIG_OF_DEVICE
 #include <linux/device.h>
 #include <linux/mod_devicetable.h>
+
+#ifdef CONFIG_OF_DEVICE
 #include <linux/pm.h>
 #include <linux/of_device.h>
 #include <linux/platform_device.h>
@@ -100,7 +101,7 @@  extern int of_platform_populate(struct d
 
 #if !defined(CONFIG_OF_ADDRESS)
 struct of_dev_auxdata;
-struct device;
+struct device_node;
 static inline int of_platform_populate(struct device_node *root,
 					const struct of_device_id *matches,
 					const struct of_dev_auxdata *lookup,