diff mbox series

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

Message ID 20210803114051.2112986-11-arnd@kernel.org (mailing list archive)
State Accepted
Commit 4228c3942821a67b8e313f7c35fdc5832cb67081
Delegated to: Netdev Maintainers
Headers show
Series drivers/net/Space.c cleanup | expand

Checks

Context Check Description
netdev/cover_letter success Link
netdev/fixes_present success Link
netdev/patch_count success Link
netdev/tree_selection success Clearly marked for net-next
netdev/subject_prefix success Link
netdev/cc_maintainers warning 3 maintainers not CCed: rmk+kernel@armlinux.org.uk W_Armin@gmx.de mchehab+huawei@kernel.org
netdev/source_inline success Was 0 now: 0
netdev/verify_signedoff success Link
netdev/module_param success Was 0 now: 0
netdev/build_32bit success Errors and warnings before: 1 this patch: 1
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/verify_fixes success Link
netdev/checkpatch warning WARNING: drivers/net/ethernet/8390/Kconfig is marked as 'obsolete' in the MAINTAINERS hierarchy. No unnecessary modifications please. WARNING: drivers/net/ethernet/8390/ne.c is marked as 'obsolete' in the MAINTAINERS hierarchy. No unnecessary modifications please.
netdev/build_allmodconfig_warn fail Errors and warnings before: 1 this patch: 5
netdev/header_inline success Link

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(-)

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 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
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