Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a3a7f3b authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by David S. Miller
Browse files

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: default avatarFinn Thain <fthain@telegraphics.com.au>
Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 49052871
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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---
+10 −22
Original line number Diff line number Diff line
@@ -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 */