diff --git a/drivers/net/arcnet/com90io.c b/drivers/net/arcnet/com90io.c
index 23ac9ed..11d2d0b 100644
--- a/drivers/net/arcnet/com90io.c
+++ b/drivers/net/arcnet/com90io.c
@@ -37,10 +37,8 @@
 #include <asm/io.h>
 #include <linux/arcdevice.h>
 
-
 #define VERSION "arcnet: COM90xx IO-mapped mode support (by David Woodhouse et el.)\n"
 
-
 /* Internal function declarations */
 
 static int com90io_found(struct net_device *dev);
@@ -53,7 +51,6 @@
 static void com90io_copy_from_card(struct net_device *dev, int bufnum, int offset,
 				   void *buf, int count);
 
-
 /* Handy defines for ARCnet specific stuff */
 
 /* The number of low I/O ports used by the card. */
@@ -78,7 +75,6 @@
 #define AINTMASK(msk)	outb((msk), _INTMASK)
 #define SETCONF()	outb((lp->config), _CONFIG)
 
-
 /****************************************************************************
  *                                                                          *
  * IO-mapped operation routines                                             *
@@ -111,7 +107,6 @@
 
 #endif
 
-
 static void get_whole_buffer(struct net_device *dev, unsigned offset, unsigned length, char *dest)
 {
 	int ioaddr = dev->base_addr;
@@ -227,7 +222,6 @@
 	return -ENODEV;
 }
 
-
 /* Set up the struct net_device associated with this card.  Called after
  * probing succeeds.
  */
@@ -279,7 +273,6 @@
 	return 0;
 }
 
-
 /*
  * Do a hardware reset on the card, and set up necessary registers.
  *
@@ -319,7 +312,6 @@
 	return 0;
 }
 
-
 static void com90io_command(struct net_device *dev, int cmd)
 {
 	short ioaddr = dev->base_addr;
@@ -327,7 +319,6 @@
 	ACOMMAND(cmd);
 }
 
-
 static int com90io_status(struct net_device *dev)
 {
 	short ioaddr = dev->base_addr;
@@ -335,7 +326,6 @@
 	return ASTATUS();
 }
 
-
 static void com90io_setmask(struct net_device *dev, int mask)
 {
 	short ioaddr = dev->base_addr;
@@ -349,7 +339,6 @@
 	TIME("put_whole_buffer", count, put_whole_buffer(dev, bufnum * 512 + offset, count, buf));
 }
 
-
 static void com90io_copy_from_card(struct net_device *dev, int bufnum, int offset,
 				   void *buf, int count)
 {
@@ -369,6 +358,7 @@
 static int __init com90io_setup(char *s)
 {
 	int ints[4];
+
 	s = get_options(s, 4, ints);
 	if (!ints[0])
 		return 0;
