Thread (13 messages) flat view 13 messages, 3 authors, 2017-02-13

[PATCH] [net-next] ARM: orion: fix PHYLIB dependency

From: arnd@arndb.de (Arnd Bergmann)
Date: 2017-02-09 17:15:26
Also in: lkml, netdev

On Thursday, February 9, 2017 4:57:51 PM CET Andrew Lunn wrote:
On Thu, Feb 09, 2017 at 04:08:11PM +0100, Arnd Bergmann wrote:
quoted
The newly introduced mdiobus_register_board_info() function is only available
as part of PHYLIB, so we get a link error when we call that from a board while
phylib is disabled:

arch/arm/plat-orion/common.o: In function `orion_ge00_switch_init':
common.c:(.init.text+0x6a4): undefined reference to `mdiobus_register_board_info'

This adds a workaround that is made up of three parts:

- in plat-orion, the function for declaring the switch is hidden without
  PHYLIB.
- in mach-orion5x, the caller conditionally stubs out the call to
  the removed function, so we can still build other orion5x boards
  without PHYLIB
- For the boards that actually declare the switch, we select PHYLIB
  explicitly from Kconfig if NETDEVICES is set. Without NETDEVICES,
  we cannot enable PHYLIB, but we also wouldn't need it.
Hi Arnd

Although all correct, would it not be simpler to just select PHYLIB
and NETDEVICES? These devices are all NAS boxes and WiFi access
points. What sense does it make to build a kernel without working
networking for these classes of devices?
Adding a 'select' statement to something as broad as NETDEVICES sounds
really bad, it has a significant risk of introducing dependency loops
and may be confusing if you want to build a multiplatform config without
networking support (note that NETDEVICES in turn depends on NET, which
can also be disabled).

One possibility would be to have a special Kconfig symbol that controls
mdiobus_register_board_info() being present and have that symbol
force PHYLIB to never be "=m". Then we can either have no networking
support and no phylib, turning mdiobus_register_board_info() into a
stub, or we have the function built-in and reachable from the board
code.

	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help