static void olympic_set_rx_mode(struct net_device *dev);
 static void olympic_freemem(struct net_device *dev) ;  
 static irqreturn_t olympic_interrupt(int irq, void *dev_id);
-static struct net_device_stats * olympic_get_stats(struct net_device *dev);
 static int olympic_set_mac_address(struct net_device *dev, void *addr) ; 
 static void olympic_arb_cmd(struct net_device *dev);
 static int olympic_change_mtu(struct net_device *dev, int mtu);
        dev->stop=&olympic_close;
        dev->do_ioctl=NULL;
        dev->set_multicast_list=&olympic_set_rx_mode;
-       dev->get_stats=&olympic_get_stats ;
        dev->set_mac_address=&olympic_set_mac_address ;  
        SET_NETDEV_DEV(dev, &pdev->dev);
 
                                } 
                                olympic_priv->rx_ring_last_received += i ; 
                                olympic_priv->rx_ring_last_received &= (OLYMPIC_RX_RING_SIZE -1) ; 
-                               olympic_priv->olympic_stats.rx_errors++;         
+                               dev->stats.rx_errors++;
                        } else {        
                        
                                if (buffer_cnt == 1) {
 
                                if (skb == NULL) {
                                        printk(KERN_WARNING "%s: Not enough memory to copy packet to upper layers. \n",dev->name) ;
-                                       olympic_priv->olympic_stats.rx_dropped++ ; 
+                                       dev->stats.rx_dropped++;
                                        /* Update counters even though we don't transfer the frame */
                                        olympic_priv->rx_ring_last_received += i ; 
                                        olympic_priv->rx_ring_last_received &= (OLYMPIC_RX_RING_SIZE -1) ;  
                                                skb->protocol = tr_type_trans(skb,dev);
                                                netif_rx(skb) ; 
                                        } 
-                                       olympic_priv->olympic_stats.rx_packets++ ; 
-                                       olympic_priv->olympic_stats.rx_bytes += length ; 
+                                       dev->stats.rx_packets++ ;
+                                       dev->stats.rx_bytes += length ;
                                } /* if skb == null */
                        } /* If status & 0x3b */
 
                                olympic_priv->tx_ring_last_status++;
                                olympic_priv->tx_ring_last_status &= (OLYMPIC_TX_RING_SIZE-1);
                                olympic_priv->free_tx_ring_entries++;
-                               olympic_priv->olympic_stats.tx_bytes += olympic_priv->tx_ring_skb[olympic_priv->tx_ring_last_status]->len;
-                               olympic_priv->olympic_stats.tx_packets++ ; 
+                               dev->stats.tx_bytes += olympic_priv->tx_ring_skb[olympic_priv->tx_ring_last_status]->len;
+                               dev->stats.tx_packets++ ;
                                pci_unmap_single(olympic_priv->pdev, 
                                        le32_to_cpu(olympic_priv->olympic_tx_ring[olympic_priv->tx_ring_last_status].buffer), 
                                        olympic_priv->tx_ring_skb[olympic_priv->tx_ring_last_status]->len,PCI_DMA_TODEVICE);
 
 } 
 
-static struct net_device_stats * olympic_get_stats(struct net_device *dev)
-{
-       struct olympic_private *olympic_priv ;
-       olympic_priv=netdev_priv(dev);
-       return (struct net_device_stats *) &olympic_priv->olympic_stats; 
-}
-
 static int olympic_set_mac_address (struct net_device *dev, void *addr) 
 {
        struct sockaddr *saddr = addr ;