diff mbox series

[v2,10/14,net-next] make legacy ISA probe optional

Message ID 20210803114051.2112986-11-arnd@kernel.org
State New
Headers show
Series drivers/net/Space.c cleanup | expand

Commit Message

Arnd Bergmann Aug. 3, 2021, 11:40 a.m. UTC
From: Arnd Bergmann <arnd@arndb.de>


There are very few ISA drivers left that rely on the static probing from
drivers/net/Space.o. Make them all select a new CONFIG_NETDEV_LEGACY_INIT
symbol, and drop the entire probe logic when that is disabled.

The 9 drivers that are called from Space.c are the same set that
calls netdev_boot_setup_check().

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/net/Kconfig                 | 7 +++++++
 drivers/net/Makefile                | 3 ++-
 drivers/net/appletalk/Kconfig       | 4 +++-
 drivers/net/ethernet/3com/Kconfig   | 1 +
 drivers/net/ethernet/8390/Kconfig   | 3 +++
 drivers/net/ethernet/8390/ne.c      | 2 ++
 drivers/net/ethernet/amd/Kconfig    | 2 ++
 drivers/net/ethernet/cirrus/Kconfig | 1 +
 drivers/net/ethernet/smsc/Kconfig   | 1 +
 9 files changed, 22 insertions(+), 2 deletions(-)

-- 
2.29.2

Comments

Geert Uytterhoeven Aug. 11, 2021, 2:50 p.m. UTC | #1
Hi Arnd,

On Tue, Aug 3, 2021 at 1:41 PM Arnd Bergmann <arnd@kernel.org> wrote:
> From: Arnd Bergmann <arnd@arndb.de>

>

> There are very few ISA drivers left that rely on the static probing from

> drivers/net/Space.o. Make them all select a new CONFIG_NETDEV_LEGACY_INIT

> symbol, and drop the entire probe logic when that is disabled.

>

> The 9 drivers that are called from Space.c are the same set that

> calls netdev_boot_setup_check().

>

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


> --- a/drivers/net/ethernet/8390/ne.c

> +++ b/drivers/net/ethernet/8390/ne.c

> @@ -951,6 +951,7 @@ static int __init ne_init(void)

>  }

>  module_init(ne_init);

>

> +#ifdef CONFIG_NETDEV_LEGACY_INIT

>  struct net_device * __init ne_probe(int unit)

>  {

>         int this_dev;

> @@ -991,6 +992,7 @@ struct net_device * __init ne_probe(int unit)

>

>         return ERR_PTR(-ENODEV);

>  }

> +#endif

>  #endif /* MODULE */


My rbtx4927 build log says:

drivers/net/ethernet/8390/ne.c:909:20: warning: ‘ne_add_devices’
defined but not used [-Wunused-function]

The network still works fine (nfsroot).

CONFIG_MACH_TX49XX=y
CONFIG_NE2000=y
CONFIG_NETDEV_LEGACY_INIT is not set

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Geert Uytterhoeven Sept. 7, 2021, 8:24 a.m. UTC | #2
Hi Arnd,

On Wed, Aug 11, 2021 at 4:50 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> On Tue, Aug 3, 2021 at 1:41 PM Arnd Bergmann <arnd@kernel.org> wrote:

> > From: Arnd Bergmann <arnd@arndb.de>

> >

> > There are very few ISA drivers left that rely on the static probing from

> > drivers/net/Space.o. Make them all select a new CONFIG_NETDEV_LEGACY_INIT

> > symbol, and drop the entire probe logic when that is disabled.

> >

> > The 9 drivers that are called from Space.c are the same set that

> > calls netdev_boot_setup_check().

> >

> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>

> > --- a/drivers/net/ethernet/8390/ne.c

> > +++ b/drivers/net/ethernet/8390/ne.c

> > @@ -951,6 +951,7 @@ static int __init ne_init(void)

> >  }

> >  module_init(ne_init);

> >

> > +#ifdef CONFIG_NETDEV_LEGACY_INIT

> >  struct net_device * __init ne_probe(int unit)

> >  {

> >         int this_dev;

> > @@ -991,6 +992,7 @@ struct net_device * __init ne_probe(int unit)

> >

> >         return ERR_PTR(-ENODEV);

> >  }

> > +#endif

> >  #endif /* MODULE */

>

> My rbtx4927 build log says:

>

> drivers/net/ethernet/8390/ne.c:909:20: warning: ‘ne_add_devices’

> defined but not used [-Wunused-function]


Same for atari_defconfig.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Arnd Bergmann Sept. 7, 2021, 1:19 p.m. UTC | #3
On Tue, Sep 7, 2021 at 10:24 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> On Wed, Aug 11, 2021 at 4:50 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:

> > On Tue, Aug 3, 2021 at 1:41 PM Arnd Bergmann <arnd@kernel.org> wrote:

> > > From: Arnd Bergmann <arnd@arndb.de>

> > >

> > > There are very few ISA drivers left that rely on the static probing from

> > > drivers/net/Space.o. Make them all select a new CONFIG_NETDEV_LEGACY_INIT

> > > symbol, and drop the entire probe logic when that is disabled.

> > >

> > > The 9 drivers that are called from Space.c are the same set that

> > > calls netdev_boot_setup_check().

> > >

> > > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> >

> > > --- a/drivers/net/ethernet/8390/ne.c

> > > +++ b/drivers/net/ethernet/8390/ne.c

> > > @@ -951,6 +951,7 @@ static int __init ne_init(void)

> > >  }

> > >  module_init(ne_init);

> > >

> > > +#ifdef CONFIG_NETDEV_LEGACY_INIT

> > >  struct net_device * __init ne_probe(int unit)

> > >  {

> > >         int this_dev;

> > > @@ -991,6 +992,7 @@ struct net_device * __init ne_probe(int unit)

> > >

> > >         return ERR_PTR(-ENODEV);

> > >  }

> > > +#endif

> > >  #endif /* MODULE */

> >

> > My rbtx4927 build log says:

> >

> > drivers/net/ethernet/8390/ne.c:909:20: warning: ‘ne_add_devices’

> > defined but not used [-Wunused-function]

>

> Same for atari_defconfig.


Sorry about that. I made the patch when you first reported it, and I was
sure I had sent it, but apparently not. Sent it now.

       Arnd
diff mbox series

Patch

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 56213a8a1ec5..c8b4eea14374 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -606,4 +606,11 @@  config NET_FAILOVER
 	  a VM with direct attached VF by failing over to the paravirtual
 	  datapath when the VF is unplugged.
 
+config NETDEV_LEGACY_INIT
+	bool
+	depends on ISA
+	help
+	  Drivers that call netdev_boot_setup_check() should select this
+	  symbol, everything else no longer needs it.
+
 endif # NETDEVICES
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index a48a664605a3..6701211118c5 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -18,7 +18,8 @@  obj-$(CONFIG_MACVLAN) += macvlan.o
 obj-$(CONFIG_MACVTAP) += macvtap.o
 obj-$(CONFIG_MII) += mii.o
 obj-$(CONFIG_MDIO) += mdio.o
-obj-$(CONFIG_NET) += Space.o loopback.o
+obj-$(CONFIG_NET) += loopback.o
+obj-$(CONFIG_NETDEV_LEGACY_INIT) += Space.o
 obj-$(CONFIG_NETCONSOLE) += netconsole.o
 obj-y += phy/
 obj-y += mdio/
diff --git a/drivers/net/appletalk/Kconfig b/drivers/net/appletalk/Kconfig
index 43918398f0d3..90b9f1d6eda9 100644
--- a/drivers/net/appletalk/Kconfig
+++ b/drivers/net/appletalk/Kconfig
@@ -52,7 +52,9 @@  config LTPC
 
 config COPS
 	tristate "COPS LocalTalk PC support"
-	depends on DEV_APPLETALK && (ISA || EISA)
+	depends on DEV_APPLETALK && ISA
+	depends on NETDEVICES
+	select NETDEV_LEGACY_INIT
 	help
 	  This allows you to use COPS AppleTalk cards to connect to LocalTalk
 	  networks. You also need version 1.3.3 or later of the netatalk
diff --git a/drivers/net/ethernet/3com/Kconfig b/drivers/net/ethernet/3com/Kconfig
index a52a3740f0c9..706bd59bf645 100644
--- a/drivers/net/ethernet/3com/Kconfig
+++ b/drivers/net/ethernet/3com/Kconfig
@@ -34,6 +34,7 @@  config EL3
 config 3C515
 	tristate "3c515 ISA \"Fast EtherLink\""
 	depends on ISA && ISA_DMA_API && !PPC32
+	select NETDEV_LEGACY_INIT
 	help
 	  If you have a 3Com ISA EtherLink XL "Corkscrew" 3c515 Fast Ethernet
 	  network card, say Y here.
diff --git a/drivers/net/ethernet/8390/Kconfig b/drivers/net/ethernet/8390/Kconfig
index 9f4b302fd2ce..a4130e643342 100644
--- a/drivers/net/ethernet/8390/Kconfig
+++ b/drivers/net/ethernet/8390/Kconfig
@@ -102,6 +102,7 @@  config MCF8390
 config NE2000
 	tristate "NE2000/NE1000 support"
 	depends on (ISA || (Q40 && m) || MACH_TX49XX || ATARI_ETHERNEC)
+	select NETDEV_LEGACY_INIT if ISA
 	select CRC32
 	help
 	  If you have a network (Ethernet) card of this type, say Y here.
@@ -169,6 +170,7 @@  config STNIC
 config ULTRA
 	tristate "SMC Ultra support"
 	depends on ISA
+	select NETDEV_LEGACY_INIT
 	select CRC32
 	help
 	  If you have a network (Ethernet) card of this type, say Y here.
@@ -186,6 +188,7 @@  config ULTRA
 config WD80x3
 	tristate "WD80*3 support"
 	depends on ISA
+	select NETDEV_LEGACY_INIT
 	select CRC32
 	help
 	  If you have a network (Ethernet) card of this type, say Y here.
diff --git a/drivers/net/ethernet/8390/ne.c b/drivers/net/ethernet/8390/ne.c
index e9756d0ea5b8..d0bbe2180b9e 100644
--- a/drivers/net/ethernet/8390/ne.c
+++ b/drivers/net/ethernet/8390/ne.c
@@ -951,6 +951,7 @@  static int __init ne_init(void)
 }
 module_init(ne_init);
 
+#ifdef CONFIG_NETDEV_LEGACY_INIT
 struct net_device * __init ne_probe(int unit)
 {
 	int this_dev;
@@ -991,6 +992,7 @@  struct net_device * __init ne_probe(int unit)
 
 	return ERR_PTR(-ENODEV);
 }
+#endif
 #endif /* MODULE */
 
 static void __exit ne_exit(void)
diff --git a/drivers/net/ethernet/amd/Kconfig b/drivers/net/ethernet/amd/Kconfig
index d0b0609bbe23..c6a3abec86f5 100644
--- a/drivers/net/ethernet/amd/Kconfig
+++ b/drivers/net/ethernet/amd/Kconfig
@@ -46,6 +46,7 @@  config AMD8111_ETH
 config LANCE
 	tristate "AMD LANCE and PCnet (AT1500 and NE2100) support"
 	depends on ISA && ISA_DMA_API && !ARM && !PPC32
+	select NETDEV_LEGACY_INIT
 	help
 	  If you have a network (Ethernet) card of this type, say Y here.
 	  Some LinkSys cards are of this type.
@@ -132,6 +133,7 @@  config PCMCIA_NMCLAN
 config NI65
 	tristate "NI6510 support"
 	depends on ISA && ISA_DMA_API && !ARM && !PPC32
+	select NETDEV_LEGACY_INIT
 	help
 	  If you have a network (Ethernet) card of this type, say Y here.
 
diff --git a/drivers/net/ethernet/cirrus/Kconfig b/drivers/net/ethernet/cirrus/Kconfig
index 7141340a8b0e..dac1764ba740 100644
--- a/drivers/net/ethernet/cirrus/Kconfig
+++ b/drivers/net/ethernet/cirrus/Kconfig
@@ -26,6 +26,7 @@  config CS89x0_ISA
 	depends on ISA
 	depends on !PPC32
 	depends on CS89x0_PLATFORM=n
+	select NETDEV_LEGACY_INIT
 	select CS89x0
 	help
 	  Support for CS89x0 chipset based Ethernet cards. If you have a
diff --git a/drivers/net/ethernet/smsc/Kconfig b/drivers/net/ethernet/smsc/Kconfig
index c52a38df0e0d..72e42a868346 100644
--- a/drivers/net/ethernet/smsc/Kconfig
+++ b/drivers/net/ethernet/smsc/Kconfig
@@ -23,6 +23,7 @@  config SMC9194
 	tristate "SMC 9194 support"
 	depends on ISA
 	select CRC32
+	select NETDEV_LEGACY_INIT
 	help
 	  This is support for the SMC9xxx based Ethernet cards. Choose this
 	  option if you have a DELL laptop with the docking station, or