#ifdef LINUX_24
int ednet_init(struct net_device *dev)
#else
int ednet_init(struct device *dev)
#endif
{
ether_setup(dev);
dev->open = ednet_open;
dev->stop = ednet_release;
dev->hard_start_xmit = ednet_tx;
dev->get_stats = ednet_stats;
dev->change_mtu = ednet_change_mtu;
#ifdef LINUX_24
dev->hard_header = ednet_header;
#endif
dev->rebuild_header = ednet_rebuild_header;
#ifdef LINUX_24
dev->tx_timeout = ednet_tx_timeout;
dev->watchdog_timeo = timeout;
#endif
/* We do not need the ARP protocol. */
dev->flags |= IFF_NOARP;
#ifndef LINUX_20
dev->hard_header_cache = NULL;
#endif
#ifdef LINUX_24
SET_MODULE_OWNER(dev);
#endif
dev->priv = kmalloc(sizeof(struct ednet_priv), GFP_KERNEL);
if (dev->priv == NULL)
return -ENOMEM;
memset(dev->priv, 0, sizeof(struct ednet_priv));
spin_lock_init(& ((struct ednet_priv *) dev->priv)->lock);
return 0;
} |