obj-$(CONFIG_NET) += Space.o loopback.o
 obj-$(CONFIG_SEEQ8005) += seeq8005.o
 obj-$(CONFIG_NET_SB1000) += sb1000.o
-obj-$(CONFIG_MAC8390) += mac8390.o
+obj-$(CONFIG_MAC8390) += mac8390.o 8390.o
 obj-$(CONFIG_APNE) += apne.o 8390.o
 obj-$(CONFIG_PCMCIA_PCNET) += 8390.o
 obj-$(CONFIG_HP100) += hp100.o
 
        if (!MACH_IS_MAC)
                return ERR_PTR(-ENODEV);
 
-       dev = ____alloc_ei_netdev(0);
+       dev = alloc_ei_netdev();
        if (!dev)
                return ERR_PTR(-ENOMEM);
 
 
 #endif /* MODULE */
 
+static const struct net_device_ops mac8390_netdev_ops = {
+       .ndo_open               = mac8390_open,
+       .ndo_stop               = mac8390_close,
+       .ndo_start_xmit         = ei_start_xmit,
+       .ndo_tx_timeout         = ei_tx_timeout,
+       .ndo_get_stats          = ei_get_stats,
+       .ndo_set_multicast_list = ei_set_multicast_list,
+       .ndo_validate_addr      = eth_validate_addr,
+       .ndo_change_mtu         = eth_change_mtu,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+       .ndo_poll_controller    = ei_poll,
+#endif
+};
+
 static int __init mac8390_initdev(struct net_device * dev, struct nubus_dev * ndev,
                            enum mac8390_type type)
 {
        int access_bitmode = 0;
 
        /* Now fill in our stuff */
-       dev->open = &mac8390_open;
-       dev->stop = &mac8390_close;
-#ifdef CONFIG_NET_POLL_CONTROLLER
-       dev->poll_controller = __ei_poll;
-#endif
+       dev->netdev_ops = &mac8390_netdev_ops;
 
        /* GAR, ei_status is actually a macro even though it looks global */
        ei_status.name = cardname[type];