diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2007-04-02 02:20:37 +0200 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2007-04-30 00:00:31 +0200 |
commit | 01590d20b42400be46cf4e565b39764e38ca87fe (patch) | |
tree | 84e27f5cca0b2547adefbb2248d4b693440e2d9c | |
parent | 8a62bf7978eaa428e400677d5e5f5441262f79b1 (diff) | |
download | op-kernel-dev-01590d20b42400be46cf4e565b39764e38ca87fe.zip op-kernel-dev-01590d20b42400be46cf4e565b39764e38ca87fe.tar.gz |
ieee1394: eth1394: don't use alloc_etherdev
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
-rw-r--r-- | drivers/ieee1394/eth1394.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/drivers/ieee1394/eth1394.c b/drivers/ieee1394/eth1394.c index fc6c7fd..0047343 100644 --- a/drivers/ieee1394/eth1394.c +++ b/drivers/ieee1394/eth1394.c @@ -50,7 +50,6 @@ #include <linux/netdevice.h> #include <linux/inetdevice.h> -#include <linux/etherdevice.h> #include <linux/if_arp.h> #include <linux/if_ether.h> #include <linux/ip.h> @@ -494,10 +493,8 @@ static void ether1394_reset_priv(struct net_device *dev, int set_mtu) spin_unlock_irqrestore(&priv->lock, flags); } -/* This function is called right before register_netdev */ static void ether1394_init_dev(struct net_device *dev) { - /* Our functions */ dev->open = ether1394_open; dev->stop = ether1394_stop; dev->hard_start_xmit = ether1394_tx; @@ -510,10 +507,9 @@ static void ether1394_init_dev(struct net_device *dev) dev->hard_header_cache = ether1394_header_cache; dev->header_cache_update= ether1394_header_cache_update; dev->hard_header_parse = ether1394_header_parse; - dev->set_mac_address = NULL; + SET_ETHTOOL_OPS(dev, ðtool_ops); - /* Some constants */ dev->watchdog_timeo = ETHER1394_TIMEOUT; dev->flags = IFF_BROADCAST | IFF_MULTICAST; dev->features = NETIF_F_HIGHDMA; @@ -521,7 +517,8 @@ static void ether1394_init_dev(struct net_device *dev) dev->hard_header_len = ETH1394_HLEN; dev->type = ARPHRD_IEEE1394; - ether1394_reset_priv(dev, 1); + /* FIXME: This value was copied from ether_setup(). Is it too much? */ + dev->tx_queue_len = 1000; } /* @@ -551,11 +548,7 @@ static void ether1394_add_host(struct hpsb_host *host) return; } - /* We should really have our own alloc_hpsbdev() function in - * net_init.c instead of calling the one for ethernet then hijacking - * it for ourselves. That way we'd be a real networking device. */ - dev = alloc_etherdev(sizeof (struct eth1394_priv)); - + dev = alloc_netdev(sizeof(*priv), "eth%d", ether1394_init_dev); if (dev == NULL) { ETH1394_PRINT_G(KERN_ERR, "Out of memory\n"); goto out; @@ -568,21 +561,18 @@ static void ether1394_add_host(struct hpsb_host *host) #endif priv = netdev_priv(dev); - INIT_LIST_HEAD(&priv->ip_node_list); - spin_lock_init(&priv->lock); priv->host = host; priv->local_fifo = fifo_addr; hi = hpsb_create_hostinfo(ð1394_highlevel, host, sizeof(*hi)); - if (hi == NULL) { ETH1394_PRINT_G(KERN_ERR, "Out of memory\n"); goto out; } - ether1394_init_dev(dev); + ether1394_reset_priv(dev, 1); if (register_netdev(dev)) { ETH1394_PRINT_G(KERN_ERR, "Cannot register the driver\n"); |