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
父節點 4905287138
當前提交 3a3a7f3b7f
共有 2 個文件被更改,包括 11 次插入23 次删除

查看文件

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

查看文件

@@ -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 */