diff --git a/drivers/net/eql.c b/drivers/net/eql.c
index 815436c..a93700e 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.
  */
 
@@ -138,7 +138,7 @@
 {
 	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,7 +159,7 @@
 	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)
@@ -182,12 +182,12 @@
 	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 +223,7 @@
 }
 
 static void eql_kill_slave_queue(slave_queue_t *queue)
-{ 
+{
 	struct list_head *head, *tmp, *this;
 
 	spin_lock_bh(&queue->lock);
@@ -244,7 +244,7 @@
 
 	/*
 	 *	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 +264,7 @@
 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 +300,15 @@
 	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,13 +336,13 @@
 
 		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++;
 	} else {
 		eql->stats.tx_dropped++;
 		dev_kfree_skb(skb);
-	}	  
+	}
 
 	spin_unlock(&eql->queue.lock);
 
@@ -596,7 +596,7 @@
 		return -ENOMEM;
 
 	err = register_netdev(dev_eql);
-	if (err) 
+	if (err)
 		free_netdev(dev_eql);
 	return err;
 }
