X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fnet%2Feql.c;h=18f1364d3d5bfeb25c94e30572cb98115fbf7af9;hb=068f5ae05c51d2cee6b31cb3da06775dd83bd348;hp=815436c6170f5d707caf8fd67029fa6469ac8fed;hpb=d42510a0f58c2583c37c8e9b7548e3a68545863a;p=linux-2.6-omap-h63xx.git diff --git a/drivers/net/eql.c b/drivers/net/eql.c index 815436c6170..18f1364d3d5 100644 --- a/drivers/net/eql.c +++ b/drivers/net/eql.c @@ -8,7 +8,7 @@ * * This software may be used and distributed according to the terms * of the GNU General Public License, incorporated herein by reference. - * + * * The author may be reached as simon@ncm.com, or C/O * NCM * Attn: Simon Janes @@ -23,7 +23,7 @@ * Inspirations: * The Harried and Overworked Alan Cox * Conspiracies: - * The Alan Cox and Mike McLagan plot to get someone else to do the code, + * The Alan Cox and Mike McLagan plot to get someone else to do the code, * which turned out to be me. */ @@ -116,6 +116,7 @@ #include #include #include +#include #include #include @@ -127,7 +128,6 @@ static int eql_open(struct net_device *dev); static int eql_close(struct net_device *dev); static int eql_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); static int eql_slave_xmit(struct sk_buff *skb, struct net_device *dev); -static struct net_device_stats *eql_get_stats(struct net_device *dev); #define eql_is_slave(dev) ((dev->flags & IFF_SLAVE) == IFF_SLAVE) #define eql_is_master(dev) ((dev->flags & IFF_MASTER) == IFF_MASTER) @@ -138,7 +138,7 @@ static void eql_timer(unsigned long param) { equalizer_t *eql = (equalizer_t *) param; struct list_head *this, *tmp, *head; - + spin_lock_bh(&eql->queue.lock); head = &eql->queue.all_slaves; list_for_each_safe(this, tmp, head) { @@ -159,15 +159,13 @@ static void eql_timer(unsigned long param) add_timer(&eql->timer); } -static char version[] __initdata = +static char version[] __initdata = "Equalizer2002: Simon Janes (simon@ncm.com) and David S. Miller (davem@redhat.com)\n"; static void __init eql_setup(struct net_device *dev) { equalizer_t *eql = netdev_priv(dev); - SET_MODULE_OWNER(dev); - init_timer(&eql->timer); eql->timer.data = (unsigned long) eql; eql->timer.expires = jiffies + EQL_DEFAULT_RESCHED_IVAL; @@ -181,13 +179,12 @@ static void __init eql_setup(struct net_device *dev) dev->stop = eql_close; dev->do_ioctl = eql_ioctl; dev->hard_start_xmit = eql_slave_xmit; - dev->get_stats = eql_get_stats; - + /* * Now we undo some of the things that eth_setup does - * that we don't like + * that we don't like */ - + dev->mtu = EQL_DEFAULT_MTU; /* set to 576 in if_eql.h */ dev->flags = IFF_MASTER; @@ -223,7 +220,7 @@ static void eql_kill_one_slave(slave_queue_t *queue, slave_t *slave) } static void eql_kill_slave_queue(slave_queue_t *queue) -{ +{ struct list_head *head, *tmp, *this; spin_lock_bh(&queue->lock); @@ -244,7 +241,7 @@ static int eql_close(struct net_device *dev) /* * The timer has to be stopped first before we start hacking away - * at the data structure it scans every so often... + * at the data structure it scans every so often... */ del_timer_sync(&eql->timer); @@ -264,7 +261,7 @@ static int eql_g_master_cfg(struct net_device *dev, master_config_t __user *mc); static int eql_s_master_cfg(struct net_device *dev, master_config_t __user *mc); static int eql_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) -{ +{ if (cmd != EQL_GETMASTRCFG && cmd != EQL_GETSLAVECFG && !capable(CAP_NET_ADMIN)) return -EPERM; @@ -300,15 +297,15 @@ static slave_t *__eql_schedule_slaves(slave_queue_t *queue) head = &queue->all_slaves; list_for_each_safe(this, tmp, head) { slave_t *slave = list_entry(this, slave_t, list); - unsigned long slave_load, bytes_queued, priority_Bps; + unsigned long slave_load, bytes_queued, priority_Bps; /* Go through the slave list once, updating best_slave * whenever a new best_load is found. */ bytes_queued = slave->bytes_queued; - priority_Bps = slave->priority_Bps; + priority_Bps = slave->priority_Bps; if ((slave->dev->flags & IFF_UP) == IFF_UP) { - slave_load = (~0UL - (~0UL / 2)) - + slave_load = (~0UL - (~0UL / 2)) - (priority_Bps) + bytes_queued * 8; if (slave_load < best_load) { @@ -336,25 +333,19 @@ static int eql_slave_xmit(struct sk_buff *skb, struct net_device *dev) skb->dev = slave_dev; skb->priority = 1; - slave->bytes_queued += skb->len; + slave->bytes_queued += skb->len; dev_queue_xmit(skb); - eql->stats.tx_packets++; + dev->stats.tx_packets++; } else { - eql->stats.tx_dropped++; + dev->stats.tx_dropped++; dev_kfree_skb(skb); - } + } spin_unlock(&eql->queue.lock); return 0; } -static struct net_device_stats * eql_get_stats(struct net_device *dev) -{ - equalizer_t *eql = netdev_priv(dev); - return &eql->stats; -} - /* * Private ioctl functions */ @@ -391,7 +382,7 @@ static int __eql_insert_slave(slave_queue_t *queue, slave_t *slave) slave_t *duplicate_slave = NULL; duplicate_slave = __eql_find_slave_dev(queue, slave->dev); - if (duplicate_slave != 0) + if (duplicate_slave) eql_kill_one_slave(queue, duplicate_slave); list_add(&slave->list, &queue->all_slaves); @@ -412,7 +403,7 @@ static int eql_enslave(struct net_device *master_dev, slaving_request_t __user * if (copy_from_user(&srq, srqp, sizeof (slaving_request_t))) return -EFAULT; - slave_dev = dev_get_by_name(srq.slave_name); + slave_dev = dev_get_by_name(&init_net, srq.slave_name); if (slave_dev) { if ((master_dev->flags & IFF_UP) == IFF_UP) { /* slave is not a master & not already a slave: */ @@ -460,7 +451,7 @@ static int eql_emancipate(struct net_device *master_dev, slaving_request_t __use if (copy_from_user(&srq, srqp, sizeof (slaving_request_t))) return -EFAULT; - slave_dev = dev_get_by_name(srq.slave_name); + slave_dev = dev_get_by_name(&init_net, srq.slave_name); ret = -EINVAL; if (slave_dev) { spin_lock_bh(&eql->queue.lock); @@ -493,7 +484,7 @@ static int eql_g_slave_cfg(struct net_device *dev, slave_config_t __user *scp) if (copy_from_user(&sc, scp, sizeof (slave_config_t))) return -EFAULT; - slave_dev = dev_get_by_name(sc.slave_name); + slave_dev = dev_get_by_name(&init_net, sc.slave_name); if (!slave_dev) return -ENODEV; @@ -528,7 +519,7 @@ static int eql_s_slave_cfg(struct net_device *dev, slave_config_t __user *scp) if (copy_from_user(&sc, scp, sizeof (slave_config_t))) return -EFAULT; - slave_dev = dev_get_by_name(sc.slave_name); + slave_dev = dev_get_by_name(&init_net, sc.slave_name); if (!slave_dev) return -ENODEV; @@ -596,7 +587,7 @@ static int __init eql_init_module(void) return -ENOMEM; err = register_netdev(dev_eql); - if (err) + if (err) free_netdev(dev_eql); return err; }