Patchwork of_net.h: Provide dummy functions if OF_NET is not configured

login
register
mail settings
Submitter Guenter Roeck
Date April 1, 2013, 6:19 p.m.
Message ID <1364840349-10696-1-git-send-email-linux@roeck-us.net>
Download mbox | patch
Permalink /patch/232785/
State Changes Requested
Delegated to: David Miller
Headers show

Comments

Guenter Roeck - April 1, 2013, 6:19 p.m.
of_get_mac_address() and of_get_phy_mode() are only provided if OF_NET
is configured. While most callers check for the define, not all do, and those
who do require #ifdef around the code. For those who don't, the missing check
can result in errors such as

arch/powerpc/sysdev/tsi108_dev.c:107:3: error: implicit declaration of
	function 'of_get_mac_address' [-Werror=implicit-function-declaration]
arch/powerpc/sysdev/mv64x60_dev.c:253:2: error: implicit declaration of
	function 'of_get_mac_address' [-Werror=implicit-function-declaration]

Provide dummy function declarations if OF_NET is not configured. This is safe
because all callers do check the return values. If desired, at least some of
the #ifdefs in the code can subsequently be removed.

Cc: David Daney <david.daney@cavium.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 include/linux/of_net.h |   10 ++++++++++
 1 file changed, 10 insertions(+)
Rob Herring - April 1, 2013, 6:44 p.m.
On 04/01/2013 01:19 PM, Guenter Roeck wrote:
> of_get_mac_address() and of_get_phy_mode() are only provided if OF_NET
> is configured. While most callers check for the define, not all do, and those
> who do require #ifdef around the code. For those who don't, the missing check
> can result in errors such as

How about removing the ifdef from those callers?

Rob

> 
> arch/powerpc/sysdev/tsi108_dev.c:107:3: error: implicit declaration of
> 	function 'of_get_mac_address' [-Werror=implicit-function-declaration]
> arch/powerpc/sysdev/mv64x60_dev.c:253:2: error: implicit declaration of
> 	function 'of_get_mac_address' [-Werror=implicit-function-declaration]
> 
> Provide dummy function declarations if OF_NET is not configured. This is safe
> because all callers do check the return values. If desired, at least some of
> the #ifdefs in the code can subsequently be removed.
> 
> Cc: David Daney <david.daney@cavium.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
>  include/linux/of_net.h |   10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/include/linux/of_net.h b/include/linux/of_net.h
> index f474641..61bf53b 100644
> --- a/include/linux/of_net.h
> +++ b/include/linux/of_net.h
> @@ -11,6 +11,16 @@
>  #include <linux/of.h>
>  extern const int of_get_phy_mode(struct device_node *np);
>  extern const void *of_get_mac_address(struct device_node *np);
> +#else
> +static inline const int of_get_phy_mode(struct device_node *np)
> +{
> +	return -ENODEV;
> +}
> +
> +static inline const void *of_get_mac_address(struct device_node *np)
> +{
> +	return NULL;
> +}
>  #endif
>  
>  #endif /* __LINUX_OF_NET_H */
> 

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Guenter Roeck - April 1, 2013, 7:01 p.m.
On Mon, Apr 01, 2013 at 01:44:24PM -0500, Rob Herring wrote:
> On 04/01/2013 01:19 PM, Guenter Roeck wrote:
> > of_get_mac_address() and of_get_phy_mode() are only provided if OF_NET
> > is configured. While most callers check for the define, not all do, and those
> > who do require #ifdef around the code. For those who don't, the missing check
> > can result in errors such as
> 
> How about removing the ifdef from those callers?
> 
That would be the next step, after/if this one is accepted.
If not, it doesn't make sense to waste my time.

Thanks,
Guenter

> Rob
> 
> > 
> > arch/powerpc/sysdev/tsi108_dev.c:107:3: error: implicit declaration of
> > 	function 'of_get_mac_address' [-Werror=implicit-function-declaration]
> > arch/powerpc/sysdev/mv64x60_dev.c:253:2: error: implicit declaration of
> > 	function 'of_get_mac_address' [-Werror=implicit-function-declaration]
> > 
> > Provide dummy function declarations if OF_NET is not configured. This is safe
> > because all callers do check the return values. If desired, at least some of
> > the #ifdefs in the code can subsequently be removed.
> > 
> > Cc: David Daney <david.daney@cavium.com>
> > Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> > ---
> >  include/linux/of_net.h |   10 ++++++++++
> >  1 file changed, 10 insertions(+)
> > 
> > diff --git a/include/linux/of_net.h b/include/linux/of_net.h
> > index f474641..61bf53b 100644
> > --- a/include/linux/of_net.h
> > +++ b/include/linux/of_net.h
> > @@ -11,6 +11,16 @@
> >  #include <linux/of.h>
> >  extern const int of_get_phy_mode(struct device_node *np);
> >  extern const void *of_get_mac_address(struct device_node *np);
> > +#else
> > +static inline const int of_get_phy_mode(struct device_node *np)
> > +{
> > +	return -ENODEV;
> > +}
> > +
> > +static inline const void *of_get_mac_address(struct device_node *np)
> > +{
> > +	return NULL;
> > +}
> >  #endif
> >  
> >  #endif /* __LINUX_OF_NET_H */
> > 
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring - April 1, 2013, 7:14 p.m.
On 04/01/2013 02:01 PM, Guenter Roeck wrote:
> On Mon, Apr 01, 2013 at 01:44:24PM -0500, Rob Herring wrote:
>> On 04/01/2013 01:19 PM, Guenter Roeck wrote:
>>> of_get_mac_address() and of_get_phy_mode() are only provided if OF_NET
>>> is configured. While most callers check for the define, not all do, and those
>>> who do require #ifdef around the code. For those who don't, the missing check
>>> can result in errors such as
>>
>> How about removing the ifdef from those callers?
>>
> That would be the next step, after/if this one is accepted.
> If not, it doesn't make sense to waste my time.

Assuming that is done:

Acked-by: Rob Herring <rob.herring@calxeda.com>

Presumably with the follow-on patches, this can go in thru the net tree.

Rob

> Thanks,
> Guenter
> 
>> Rob
>>
>>>
>>> arch/powerpc/sysdev/tsi108_dev.c:107:3: error: implicit declaration of
>>> 	function 'of_get_mac_address' [-Werror=implicit-function-declaration]
>>> arch/powerpc/sysdev/mv64x60_dev.c:253:2: error: implicit declaration of
>>> 	function 'of_get_mac_address' [-Werror=implicit-function-declaration]
>>>
>>> Provide dummy function declarations if OF_NET is not configured. This is safe
>>> because all callers do check the return values. If desired, at least some of
>>> the #ifdefs in the code can subsequently be removed.
>>>
>>> Cc: David Daney <david.daney@cavium.com>
>>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>>> ---
>>>  include/linux/of_net.h |   10 ++++++++++
>>>  1 file changed, 10 insertions(+)
>>>
>>> diff --git a/include/linux/of_net.h b/include/linux/of_net.h
>>> index f474641..61bf53b 100644
>>> --- a/include/linux/of_net.h
>>> +++ b/include/linux/of_net.h
>>> @@ -11,6 +11,16 @@
>>>  #include <linux/of.h>
>>>  extern const int of_get_phy_mode(struct device_node *np);
>>>  extern const void *of_get_mac_address(struct device_node *np);
>>> +#else
>>> +static inline const int of_get_phy_mode(struct device_node *np)
>>> +{
>>> +	return -ENODEV;
>>> +}
>>> +
>>> +static inline const void *of_get_mac_address(struct device_node *np)
>>> +{
>>> +	return NULL;
>>> +}
>>>  #endif
>>>  
>>>  #endif /* __LINUX_OF_NET_H */
>>>
>>
>>

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - April 2, 2013, 6:33 p.m.
From: Rob Herring <robherring2@gmail.com>
Date: Mon, 01 Apr 2013 14:14:10 -0500

> On 04/01/2013 02:01 PM, Guenter Roeck wrote:
>> On Mon, Apr 01, 2013 at 01:44:24PM -0500, Rob Herring wrote:
>>> On 04/01/2013 01:19 PM, Guenter Roeck wrote:
>>>> of_get_mac_address() and of_get_phy_mode() are only provided if OF_NET
>>>> is configured. While most callers check for the define, not all do, and those
>>>> who do require #ifdef around the code. For those who don't, the missing check
>>>> can result in errors such as
>>>
>>> How about removing the ifdef from those callers?
>>>
>> That would be the next step, after/if this one is accepted.
>> If not, it doesn't make sense to waste my time.
> 
> Assuming that is done:
> 
> Acked-by: Rob Herring <rob.herring@calxeda.com>
> 
> Presumably with the follow-on patches, this can go in thru the net tree.

Indeed, please resubmit this with the follow-on cleanups.

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

Patch

diff --git a/include/linux/of_net.h b/include/linux/of_net.h
index f474641..61bf53b 100644
--- a/include/linux/of_net.h
+++ b/include/linux/of_net.h
@@ -11,6 +11,16 @@ 
 #include <linux/of.h>
 extern const int of_get_phy_mode(struct device_node *np);
 extern const void *of_get_mac_address(struct device_node *np);
+#else
+static inline const int of_get_phy_mode(struct device_node *np)
+{
+	return -ENODEV;
+}
+
+static inline const void *of_get_mac_address(struct device_node *np)
+{
+	return NULL;
+}
 #endif
 
 #endif /* __LINUX_OF_NET_H */