All of lore.kernel.org
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Arnd Bergmann <arnd@kernel.org>
Cc: netdev <netdev@vger.kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	Paul Gortmaker <paul.gortmaker@windriver.com>,
	"Maciej W. Rozycki" <macro@orcam.me.uk>,
	"David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, Doug Berger <opendmb@gmail.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Sam Creasey <sammy@sammy.net>,
	Finn Thain <fthain@telegraphics.com.au>,
	Christophe JAILLET <christophe.jaillet@wanadoo.fr>,
	Andrew Lunn <andrew@lunn.ch>, Alexei Starovoitov <ast@kernel.org>,
	Eric Dumazet <edumazet@google.com>,
	Andrii Nakryiko <andriin@fb.com>,
	Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	bcm-kernel-feedback-list <bcm-kernel-feedback-list@broadcom.com>,
	linux-m68k <linux-m68k@lists.linux-m68k.org>
Subject: Re: [RFC 06/13] [net-next] m68k: remove legacy probing
Date: Mon, 17 May 2021 10:10:55 +0200	[thread overview]
Message-ID: <CAMuHMdVVBpOAuXLtEo00RSFG77kKwFuyTprRj72_sNqv1LcMhA@mail.gmail.com> (raw)
In-Reply-To: <20210515221320.1255291-7-arnd@kernel.org>

Hi Arnd,

CC linux-m68k

On Sun, May 16, 2021 at 12:14 AM Arnd Bergmann <arnd@kernel.org> wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> There are six m68k specific drivers that use the legacy probe method
> in drivers/net/Space.c. However, all of these only support a single
> device, and they completely ignore the command line settings from
> netdev_boot_setup_check, so there is really no point at all.
>
> Aside from sun3_82586, these already have a module_init function that
> can be used for built-in mode as well, simply by removing the #ifdef.
>
> Note that the 82596 driver was previously used on ISA as well, but
> that got dropped long ago.

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

Looks all good to me, so
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
but I don't have any of the hardware to test.

> ---
>  drivers/net/Space.c                      | 25 +-----------------------
>  drivers/net/ethernet/8390/apne.c         | 11 ++---------
>  drivers/net/ethernet/amd/atarilance.c    | 11 ++---------
>  drivers/net/ethernet/amd/mvme147.c       | 16 ++++++---------
>  drivers/net/ethernet/amd/sun3lance.c     | 19 ++++++------------
>  drivers/net/ethernet/i825xx/82596.c      | 24 ++++++-----------------
>  drivers/net/ethernet/i825xx/sun3_82586.c | 17 +++++++---------
>  include/net/Space.h                      |  6 ------
>  8 files changed, 30 insertions(+), 99 deletions(-)
>
> diff --git a/drivers/net/Space.c b/drivers/net/Space.c
> index 9f573f7ded3c..a03559f23295 100644
> --- a/drivers/net/Space.c
> +++ b/drivers/net/Space.c
> @@ -80,34 +80,12 @@ static struct devprobe2 isa_probes[] __initdata = {
>  #ifdef CONFIG_CS89x0_ISA
>         {cs89x0_probe, 0},
>  #endif
> -#if defined(CONFIG_MVME16x_NET) || defined(CONFIG_BVME6000_NET)        /* Intel */
> -       {i82596_probe, 0},                                      /* I82596 */
> -#endif
>  #ifdef CONFIG_NI65
>         {ni65_probe, 0},
>  #endif
>         {NULL, 0},
>  };
>
> -static struct devprobe2 m68k_probes[] __initdata = {
> -#ifdef CONFIG_ATARILANCE       /* Lance-based Atari ethernet boards */
> -       {atarilance_probe, 0},
> -#endif
> -#ifdef CONFIG_SUN3LANCE         /* sun3 onboard Lance chip */
> -       {sun3lance_probe, 0},
> -#endif
> -#ifdef CONFIG_SUN3_82586        /* sun3 onboard Intel 82586 chip */
> -       {sun3_82586_probe, 0},
> -#endif
> -#ifdef CONFIG_APNE             /* A1200 PCMCIA NE2000 */
> -       {apne_probe, 0},
> -#endif
> -#ifdef CONFIG_MVME147_NET      /* MVME147 internal Ethernet */
> -       {mvme147lance_probe, 0},
> -#endif
> -       {NULL, 0},
> -};
> -
>  /* Unified ethernet device probe, segmented per architecture and
>   * per bus interface. This drives the legacy devices only for now.
>   */
> @@ -119,8 +97,7 @@ static void __init ethif_probe2(int unit)
>         if (base_addr == 1)
>                 return;
>
> -       (void)(probe_list2(unit, m68k_probes, base_addr == 0) &&
> -               probe_list2(unit, isa_probes, base_addr == 0));
> +       probe_list2(unit, isa_probes, base_addr == 0);
>  }
>
>  /*  Statically configured drivers -- order matters here. */
> diff --git a/drivers/net/ethernet/8390/apne.c b/drivers/net/ethernet/8390/apne.c
> index fe6c834c422e..da1ae37a9d73 100644
> --- a/drivers/net/ethernet/8390/apne.c
> +++ b/drivers/net/ethernet/8390/apne.c
> @@ -75,7 +75,6 @@
>  #define NESM_STOP_PG   0x80    /* Last page +1 of RX ring */
>
>
> -struct net_device * __init apne_probe(int unit);
>  static int apne_probe1(struct net_device *dev, int ioaddr);
>
>  static void apne_reset_8390(struct net_device *dev);
> @@ -120,7 +119,7 @@ static u32 apne_msg_enable;
>  module_param_named(msg_enable, apne_msg_enable, uint, 0444);
>  MODULE_PARM_DESC(msg_enable, "Debug message level (see linux/netdevice.h for bitmap)");
>
> -struct net_device * __init apne_probe(int unit)
> +static struct net_device * __init apne_probe(void)
>  {
>         struct net_device *dev;
>         struct ei_device *ei_local;
> @@ -150,10 +149,6 @@ struct net_device * __init apne_probe(int unit)
>         dev = alloc_ei_netdev();
>         if (!dev)
>                 return ERR_PTR(-ENOMEM);
> -       if (unit >= 0) {
> -               sprintf(dev->name, "eth%d", unit);
> -               netdev_boot_setup_check(dev);
> -       }
>         ei_local = netdev_priv(dev);
>         ei_local->msg_enable = apne_msg_enable;
>
> @@ -554,12 +549,11 @@ static irqreturn_t apne_interrupt(int irq, void *dev_id)
>      return IRQ_HANDLED;
>  }
>
> -#ifdef MODULE
>  static struct net_device *apne_dev;
>
>  static int __init apne_module_init(void)
>  {
> -       apne_dev = apne_probe(-1);
> +       apne_dev = apne_probe();
>         return PTR_ERR_OR_ZERO(apne_dev);
>  }
>
> @@ -579,7 +573,6 @@ static void __exit apne_module_exit(void)
>  }
>  module_init(apne_module_init);
>  module_exit(apne_module_exit);
> -#endif
>
>  static int init_pcmcia(void)
>  {
> diff --git a/drivers/net/ethernet/amd/atarilance.c b/drivers/net/ethernet/amd/atarilance.c
> index c1eab916438f..83012a1ef3cf 100644
> --- a/drivers/net/ethernet/amd/atarilance.c
> +++ b/drivers/net/ethernet/amd/atarilance.c
> @@ -367,7 +367,7 @@ static void *slow_memcpy( void *dst, const void *src, size_t len )
>  }
>
>
> -struct net_device * __init atarilance_probe(int unit)
> +struct net_device * __init atarilance_probe(void)
>  {
>         int i;
>         static int found;
> @@ -382,10 +382,6 @@ struct net_device * __init atarilance_probe(int unit)
>         dev = alloc_etherdev(sizeof(struct lance_private));
>         if (!dev)
>                 return ERR_PTR(-ENOMEM);
> -       if (unit >= 0) {
> -               sprintf(dev->name, "eth%d", unit);
> -               netdev_boot_setup_check(dev);
> -       }
>
>         for( i = 0; i < N_LANCE_ADDR; ++i ) {
>                 if (lance_probe1( dev, &lance_addr_list[i] )) {
> @@ -1137,13 +1133,11 @@ static int lance_set_mac_address( struct net_device *dev, void *addr )
>         return 0;
>  }
>
> -
> -#ifdef MODULE
>  static struct net_device *atarilance_dev;
>
>  static int __init atarilance_module_init(void)
>  {
> -       atarilance_dev = atarilance_probe(-1);
> +       atarilance_dev = atarilance_probe();
>         return PTR_ERR_OR_ZERO(atarilance_dev);
>  }
>
> @@ -1155,4 +1149,3 @@ static void __exit atarilance_module_exit(void)
>  }
>  module_init(atarilance_module_init);
>  module_exit(atarilance_module_exit);
> -#endif /* MODULE */
> diff --git a/drivers/net/ethernet/amd/mvme147.c b/drivers/net/ethernet/amd/mvme147.c
> index 3f2e4cdd0b83..da97fccea9ea 100644
> --- a/drivers/net/ethernet/amd/mvme147.c
> +++ b/drivers/net/ethernet/amd/mvme147.c
> @@ -68,7 +68,7 @@ static const struct net_device_ops lance_netdev_ops = {
>  };
>
>  /* Initialise the one and only on-board 7990 */
> -struct net_device * __init mvme147lance_probe(int unit)
> +static struct net_device * __init mvme147lance_probe(void)
>  {
>         struct net_device *dev;
>         static int called;
> @@ -86,9 +86,6 @@ struct net_device * __init mvme147lance_probe(int unit)
>         if (!dev)
>                 return ERR_PTR(-ENOMEM);
>
> -       if (unit >= 0)
> -               sprintf(dev->name, "eth%d", unit);
> -
>         /* Fill the dev fields */
>         dev->base_addr = (unsigned long)MVME147_LANCE_BASE;
>         dev->netdev_ops = &lance_netdev_ops;
> @@ -179,22 +176,21 @@ static int m147lance_close(struct net_device *dev)
>         return 0;
>  }
>
> -#ifdef MODULE
>  MODULE_LICENSE("GPL");
>
>  static struct net_device *dev_mvme147_lance;
> -int __init init_module(void)
> +static int __init m147lance_init(void)
>  {
> -       dev_mvme147_lance = mvme147lance_probe(-1);
> +       dev_mvme147_lance = mvme147lance_probe();
>         return PTR_ERR_OR_ZERO(dev_mvme147_lance);
>  }
> +module_init(m147lance_init);
>
> -void __exit cleanup_module(void)
> +static void __exit m147lance_exit(void)
>  {
>         struct m147lance_private *lp = netdev_priv(dev_mvme147_lance);
>         unregister_netdev(dev_mvme147_lance);
>         free_pages(lp->ram, 3);
>         free_netdev(dev_mvme147_lance);
>  }
> -
> -#endif /* MODULE */
> +module_exit(m147lance_exit);
> diff --git a/drivers/net/ethernet/amd/sun3lance.c b/drivers/net/ethernet/amd/sun3lance.c
> index 00ae1081254d..73724b082bdb 100644
> --- a/drivers/net/ethernet/amd/sun3lance.c
> +++ b/drivers/net/ethernet/amd/sun3lance.c
> @@ -245,7 +245,7 @@ static void set_multicast_list( struct net_device *dev );
>
>  /************************* End of Prototypes **************************/
>
> -struct net_device * __init sun3lance_probe(int unit)
> +static struct net_device * __init sun3lance_probe(void)
>  {
>         struct net_device *dev;
>         static int found;
> @@ -272,10 +272,6 @@ struct net_device * __init sun3lance_probe(int unit)
>         dev = alloc_etherdev(sizeof(struct lance_private));
>         if (!dev)
>                 return ERR_PTR(-ENOMEM);
> -       if (unit >= 0) {
> -               sprintf(dev->name, "eth%d", unit);
> -               netdev_boot_setup_check(dev);
> -       }
>
>         if (!lance_probe(dev))
>                 goto out;
> @@ -924,17 +920,16 @@ static void set_multicast_list( struct net_device *dev )
>  }
>
>
> -#ifdef MODULE
> -
>  static struct net_device *sun3lance_dev;
>
> -int __init init_module(void)
> +static int __init sun3lance_init(void)
>  {
> -       sun3lance_dev = sun3lance_probe(-1);
> +       sun3lance_dev = sun3lance_probe();
>         return PTR_ERR_OR_ZERO(sun3lance_dev);
>  }
> +module_init(sun3lance_init);
>
> -void __exit cleanup_module(void)
> +static void __exit sun3lance_cleanup(void)
>  {
>         unregister_netdev(sun3lance_dev);
>  #ifdef CONFIG_SUN3
> @@ -942,6 +937,4 @@ void __exit cleanup_module(void)
>  #endif
>         free_netdev(sun3lance_dev);
>  }
> -
> -#endif /* MODULE */
> -
> +module_exit(sun3lance_cleanup);
> diff --git a/drivers/net/ethernet/i825xx/82596.c b/drivers/net/ethernet/i825xx/82596.c
> index fc8c7cd67471..b8a40146b895 100644
> --- a/drivers/net/ethernet/i825xx/82596.c
> +++ b/drivers/net/ethernet/i825xx/82596.c
> @@ -1110,9 +1110,6 @@ static void print_eth(unsigned char *add, char *str)
>                add, add + 6, add, add[12], add[13], str);
>  }
>
> -static int io = 0x300;
> -static int irq = 10;
> -
>  static const struct net_device_ops i596_netdev_ops = {
>         .ndo_open               = i596_open,
>         .ndo_stop               = i596_close,
> @@ -1123,7 +1120,7 @@ static const struct net_device_ops i596_netdev_ops = {
>         .ndo_validate_addr      = eth_validate_addr,
>  };
>
> -struct net_device * __init i82596_probe(int unit)
> +static struct net_device * __init i82596_probe(void)
>  {
>         struct net_device *dev;
>         int i;
> @@ -1140,14 +1137,6 @@ struct net_device * __init i82596_probe(int unit)
>         if (!dev)
>                 return ERR_PTR(-ENOMEM);
>
> -       if (unit >= 0) {
> -               sprintf(dev->name, "eth%d", unit);
> -               netdev_boot_setup_check(dev);
> -       } else {
> -               dev->base_addr = io;
> -               dev->irq = irq;
> -       }
> -
>  #ifdef ENABLE_MVME16x_NET
>         if (MACH_IS_MVME16x) {
>                 if (mvme16x_config & MVME16x_CONFIG_NO_ETHERNET) {
> @@ -1515,22 +1504,22 @@ static void set_multicast_list(struct net_device *dev)
>         }
>  }
>
> -#ifdef MODULE
>  static struct net_device *dev_82596;
>
>  static int debug = -1;
>  module_param(debug, int, 0);
>  MODULE_PARM_DESC(debug, "i82596 debug mask");
>
> -int __init init_module(void)
> +static int __init i82596_init(void)
>  {
>         if (debug >= 0)
>                 i596_debug = debug;
> -       dev_82596 = i82596_probe(-1);
> +       dev_82596 = i82596_probe();
>         return PTR_ERR_OR_ZERO(dev_82596);
>  }
> +module_init(i82596_init);
>
> -void __exit cleanup_module(void)
> +static void __exit i82596_cleanup(void)
>  {
>         unregister_netdev(dev_82596);
>  #ifdef __mc68000__
> @@ -1544,5 +1533,4 @@ void __exit cleanup_module(void)
>         free_page ((u32)(dev_82596->mem_start));
>         free_netdev(dev_82596);
>  }
> -
> -#endif                         /* MODULE */
> +module_exit(i82596_cleanup);
> diff --git a/drivers/net/ethernet/i825xx/sun3_82586.c b/drivers/net/ethernet/i825xx/sun3_82586.c
> index 4564ee02c95f..893e0ddcb611 100644
> --- a/drivers/net/ethernet/i825xx/sun3_82586.c
> +++ b/drivers/net/ethernet/i825xx/sun3_82586.c
> @@ -29,6 +29,7 @@ static int rfdadd = 0; /* rfdadd=1 may be better for 8K MEM cards */
>  static int fifo=0x8;   /* don't change */
>
>  #include <linux/kernel.h>
> +#include <linux/module.h>
>  #include <linux/string.h>
>  #include <linux/errno.h>
>  #include <linux/ioport.h>
> @@ -276,7 +277,7 @@ static void alloc586(struct net_device *dev)
>         memset((char *)p->scb,0,sizeof(struct scb_struct));
>  }
>
> -struct net_device * __init sun3_82586_probe(int unit)
> +static int __init sun3_82586_probe(void)
>  {
>         struct net_device *dev;
>         unsigned long ioaddr;
> @@ -291,25 +292,20 @@ struct net_device * __init sun3_82586_probe(int unit)
>                 break;
>
>         default:
> -               return ERR_PTR(-ENODEV);
> +               return -ENODEV;
>         }
>
>         if (found)
> -               return ERR_PTR(-ENODEV);
> +               return -ENODEV;
>
>         ioaddr = (unsigned long)ioremap(IE_OBIO, SUN3_82586_TOTAL_SIZE);
>         if (!ioaddr)
> -               return ERR_PTR(-ENOMEM);
> +               return -ENOMEM;
>         found = 1;
>
>         dev = alloc_etherdev(sizeof(struct priv));
>         if (!dev)
>                 goto out;
> -       if (unit >= 0) {
> -               sprintf(dev->name, "eth%d", unit);
> -               netdev_boot_setup_check(dev);
> -       }
> -
>         dev->irq = IE_IRQ;
>         dev->base_addr = ioaddr;
>         err = sun3_82586_probe1(dev, ioaddr);
> @@ -326,8 +322,9 @@ struct net_device * __init sun3_82586_probe(int unit)
>         free_netdev(dev);
>  out:
>         iounmap((void __iomem *)ioaddr);
> -       return ERR_PTR(err);
> +       return err;
>  }
> +module_init(sun3_82586_probe);
>
>  static const struct net_device_ops sun3_82586_netdev_ops = {
>         .ndo_open               = sun3_82586_open,
> diff --git a/include/net/Space.h b/include/net/Space.h
> index e30e7a70ea99..93fd6caa4bad 100644
> --- a/include/net/Space.h
> +++ b/include/net/Space.h
> @@ -8,16 +8,10 @@ struct net_device *ultra_probe(int unit);
>  struct net_device *wd_probe(int unit);
>  struct net_device *ne_probe(int unit);
>  struct net_device *fmv18x_probe(int unit);
> -struct net_device *i82596_probe(int unit);
>  struct net_device *ni65_probe(int unit);
>  struct net_device *sonic_probe(int unit);
>  struct net_device *smc_init(int unit);
> -struct net_device *atarilance_probe(int unit);
> -struct net_device *sun3lance_probe(int unit);
> -struct net_device *sun3_82586_probe(int unit);
> -struct net_device *apne_probe(int unit);
>  struct net_device *cs89x0_probe(int unit);
> -struct net_device *mvme147lance_probe(int unit);
>  struct net_device *tc515_probe(int unit);
>  struct net_device *lance_probe(int unit);
>  struct net_device *cops_probe(int unit);

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

  reply	other threads:[~2021-05-17  8:11 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-15 22:13 [RFC 00/13] [net-next] drivers/net/Space.c cleanup Arnd Bergmann
2021-05-15 22:13 ` [RFC 01/13] [net-next] bcmgenet: remove call to netdev_boot_setup_check Arnd Bergmann
2021-05-16  0:04   ` Florian Fainelli
2021-05-15 22:13 ` [RFC 02/13] [net-next] natsemi: sonic: stop calling netdev_boot_setup_check Arnd Bergmann
2021-05-15 22:13 ` [RFC 03/13] [net-next] appletalk: ltpc: remove static probing Arnd Bergmann
2021-05-15 22:13 ` [RFC 04/13] [net-next] 3c509: stop calling netdev_boot_setup_check Arnd Bergmann
2021-05-15 22:13 ` [RFC 05/13] [net-next] cs89x0: rework driver configuration Arnd Bergmann
2021-05-15 22:13 ` [RFC 06/13] [net-next] m68k: remove legacy probing Arnd Bergmann
2021-05-17  8:10   ` Geert Uytterhoeven [this message]
2021-05-15 22:13 ` [RFC 07/13] [net-next] move netdev_boot_setup into Space.c Arnd Bergmann
2021-05-15 22:13 ` [RFC 08/13] [net-next] make legacy ISA probe optional Arnd Bergmann
2021-05-15 22:13 ` [RFC 09/13] [net-next] wan: remove stale Kconfig entries Arnd Bergmann
2021-05-15 22:13 ` [RFC 10/13] [net-next] wan: remove sbni/granch driver Arnd Bergmann
2021-05-15 22:13 ` [RFC 11/13] [net-next] wan: hostess_sv11: use module_init/module_exit helpers Arnd Bergmann
2021-05-15 22:13 ` [RFC 12/13] [net-next] ethernet: isa: convert to module_init/module_exit Arnd Bergmann
2021-05-15 22:13 ` [RFC 13/13] [net-next] 8390: xsurf100: avoid including lib8390.c Arnd Bergmann
2021-05-16  4:24   ` Finn Thain
2021-05-16  9:04     ` Geert Uytterhoeven
2021-05-16  9:39       ` Arnd Bergmann
2021-05-16  0:06 ` [RFC 00/13] [net-next] drivers/net/Space.c cleanup Maciej W. Rozycki
2021-05-16  9:27   ` Arnd Bergmann
2021-05-17 14:38 ` Paul Gortmaker
2021-05-17 15:40   ` Maciej W. Rozycki
2021-05-17 15:49   ` Arnd Bergmann
2021-05-17 23:04   ` Finn Thain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAMuHMdVVBpOAuXLtEo00RSFG77kKwFuyTprRj72_sNqv1LcMhA@mail.gmail.com \
    --to=geert@linux-m68k.org \
    --cc=andrew@lunn.ch \
    --cc=andriin@fb.com \
    --cc=arnd@arndb.de \
    --cc=arnd@kernel.org \
    --cc=ast@kernel.org \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bgolaszewski@baylibre.com \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=fthain@telegraphics.com.au \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=macro@orcam.me.uk \
    --cc=netdev@vger.kernel.org \
    --cc=opendmb@gmail.com \
    --cc=paul.gortmaker@windriver.com \
    --cc=sammy@sammy.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.