Patchwork powerpc/ep8248e: phylib needs NET_SCHED to build

login
register
mail settings
Submitter Alexander Beregalov
Date May 20, 2009, 12:18 p.m.
Message ID <1242821902-16836-1-git-send-email-a.beregalov@gmail.com>
Download mbox | patch
Permalink /patch/27456/
State Changes Requested
Delegated to: David Miller
Headers show

Comments

Alexander Beregalov - May 20, 2009, 12:18 p.m.
Fix this build error:
drivers/built-in.o: In function `phy_state_machine':
drivers/net/phy/phy.c:893: undefined reference to 'netif_carrier_off'
drivers/net/phy/phy.c:854: undefined reference to 'netif_carrier_on'

Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
---
 arch/powerpc/platforms/82xx/Kconfig |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
Geert Uytterhoeven - May 20, 2009, 12:27 p.m.
On Wed, 20 May 2009, Alexander Beregalov wrote:
> Fix this build error:
> drivers/built-in.o: In function `phy_state_machine':
> drivers/net/phy/phy.c:893: undefined reference to 'netif_carrier_off'
> drivers/net/phy/phy.c:854: undefined reference to 'netif_carrier_on'
> 
> Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
> ---
>  arch/powerpc/platforms/82xx/Kconfig |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/powerpc/platforms/82xx/Kconfig b/arch/powerpc/platforms/82xx/Kconfig
> index 7c7df40..36a3e58 100644
> --- a/arch/powerpc/platforms/82xx/Kconfig
> +++ b/arch/powerpc/platforms/82xx/Kconfig
> @@ -31,6 +31,9 @@ config EP8248E
>  	select 8260
>  	select FSL_SOC
>  	select PHYLIB
> +	select NET
> +	select NETDEVICE
> +	select NET_SCHED
>  	select MDIO_BITBANG
>  	help
>  	  This enables support for the Embedded Planet EP8248E board.

Why is there a `select PHYLIB' at the platform level? Shouldn't it be in
drivers/net/Kconfig, near the appropriate network driver? That way people can
build kernels without networking support, if they want.

With kind regards,

Geert Uytterhoeven
Software Architect
Techsoft Centre

Technology and Software Centre Europe
The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium

Phone:    +32 (0)2 700 8453
Fax:      +32 (0)2 700 8622
E-mail:   Geert.Uytterhoeven@sonycom.com
Internet: http://www.sony-europe.com/

A division of Sony Europe (Belgium) N.V.
VAT BE 0413.825.160 · RPR Brussels
Fortis · BIC GEBABEBB · IBAN BE41293037680010
--
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
Kumar Gala - May 20, 2009, 1:27 p.m.
On May 20, 2009, at 7:27 AM, Geert Uytterhoeven wrote:

> On Wed, 20 May 2009, Alexander Beregalov wrote:
>> Fix this build error:
>> drivers/built-in.o: In function `phy_state_machine':
>> drivers/net/phy/phy.c:893: undefined reference to 'netif_carrier_off'
>> drivers/net/phy/phy.c:854: undefined reference to 'netif_carrier_on'
>>
>> Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
>> ---
>> arch/powerpc/platforms/82xx/Kconfig |    3 +++
>> 1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/powerpc/platforms/82xx/Kconfig b/arch/powerpc/ 
>> platforms/82xx/Kconfig
>> index 7c7df40..36a3e58 100644
>> --- a/arch/powerpc/platforms/82xx/Kconfig
>> +++ b/arch/powerpc/platforms/82xx/Kconfig
>> @@ -31,6 +31,9 @@ config EP8248E
>> 	select 8260
>> 	select FSL_SOC
>> 	select PHYLIB
>> +	select NET
>> +	select NETDEVICE
>> +	select NET_SCHED
>> 	select MDIO_BITBANG
>> 	help
>> 	  This enables support for the Embedded Planet EP8248E board.
>
> Why is there a `select PHYLIB' at the platform level? Shouldn't it  
> be in
> drivers/net/Kconfig, near the appropriate network driver? That way  
> people can
> build kernels without networking support, if they want.

I agree w/you however the initial reason it was:

commit ff21f23648d33649fcf3e1e99d03e245f0e1acf8
Author: Kumar Gala <galak@kernel.crashing.org>
Date:   Wed Jul 16 17:47:54 2008 -0500

     powerpc/ep8248e: Unconditionally select PHYLIB for mdio_bitbang

     Its possible to build the phylib as a module, however this breaks  
the
     board code because alloc_mdio_bitbang and mdiobus_register are not
     available if we build as a module.  These are needed by the board  
code
     since it implements the low level mdio bitbang ops.

     So we unconditionally select PHYLIB to ensure its built into the  
kernel
     if we are building in EP8248E support.

     Long term we should look at moving the mdio_ops into its own file  
so it
     can be built as a module.

     Signed-off-by: Kumar Gala <galak@kernel.crashing.org>

so maybe it should:

	select PHYLIB if NET

- k

--
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 - May 20, 2009, 7:26 p.m.
From: Alexander Beregalov <a.beregalov@gmail.com>
Date: Wed, 20 May 2009 16:18:22 +0400

> Fix this build error:
> drivers/built-in.o: In function `phy_state_machine':
> drivers/net/phy/phy.c:893: undefined reference to 'netif_carrier_off'
> drivers/net/phy/phy.c:854: undefined reference to 'netif_carrier_on'
> 
> Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>

This isn't right.  Otherwise no networking driver would build
with NET_SCHED disabled.

net/sched/sch_generic.c is always built when NET is enabled
and that's where netif_carrier_off() is defined.

As you can see in net/sched/Makefile, sch_generic.o is
"obj-y", did you even check? :-)
--
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/arch/powerpc/platforms/82xx/Kconfig b/arch/powerpc/platforms/82xx/Kconfig
index 7c7df40..36a3e58 100644
--- a/arch/powerpc/platforms/82xx/Kconfig
+++ b/arch/powerpc/platforms/82xx/Kconfig
@@ -31,6 +31,9 @@  config EP8248E
 	select 8260
 	select FSL_SOC
 	select PHYLIB
+	select NET
+	select NETDEVICE
+	select NET_SCHED
 	select MDIO_BITBANG
 	help
 	  This enables support for the Embedded Planet EP8248E board.