net: mac8390: Allow modular build

The modular driver supports only one card, just like the built-in
driver.

Note that this limitation is a problem which affects all Nubus card
drivers, because they have to do all their own bus matching, because
Nubus still lacks the necessary driver model support.

Suggested-by: Finn Thain <fthain@telegraphics.com.au>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Geert Uytterhoeven 2015-09-29 10:24:02 +02:00 committed by David S. Miller
parent 4905287138
commit 3a3a7f3b7f
2 changed files with 11 additions and 23 deletions

View file

@ -64,7 +64,7 @@ config ARM_ETHERH
should say Y to this option if you wish to use it with Linux.
config MAC8390
bool "Macintosh NS 8390 based ethernet cards"
tristate "Macintosh NS 8390 based ethernet cards"
depends on MAC
select CRC32
---help---

View file

@ -454,34 +454,22 @@ MODULE_AUTHOR("David Huggins-Daines <dhd@debian.org> and others");
MODULE_DESCRIPTION("Macintosh NS8390-based Nubus Ethernet driver");
MODULE_LICENSE("GPL");
/* overkill, of course */
static struct net_device *dev_mac8390[15];
int init_module(void)
static struct net_device *dev_mac8390;
int __init init_module(void)
{
int i;
for (i = 0; i < 15; i++) {
struct net_device *dev = mac8390_probe(-1);
if (IS_ERR(dev))
break;
dev_mac890[i] = dev;
}
if (!i) {
pr_notice("No useable cards found, driver NOT installed.\n");
return -ENODEV;
dev_mac8390 = mac8390_probe(-1);
if (IS_ERR(dev_mac8390)) {
pr_warn("mac8390: No card found\n");
return PTR_ERR(dev_mac8390);
}
return 0;
}
void cleanup_module(void)
void __exit cleanup_module(void)
{
int i;
for (i = 0; i < 15; i++) {
struct net_device *dev = dev_mac890[i];
if (dev) {
unregister_netdev(dev);
free_netdev(dev);
}
}
unregister_netdev(dev_mac8390);
free_netdev(dev_mac8390);
}
#endif /* MODULE */