/* device private data */
 
 struct net_local {
-       struct net_device_stats stats;
        struct timer_list       watchdog;
 
        spinlock_t      lock;
 static int  sbni_close( struct net_device * );
 static int  sbni_start_xmit( struct sk_buff *, struct net_device * );
 static int  sbni_ioctl( struct net_device *, struct ifreq *, int );
-static struct net_device_stats  *sbni_get_stats( struct net_device * );
 static void  set_multicast_list( struct net_device * );
 
 static irqreturn_t sbni_interrupt( int, void * );
                        nl->wait_frameno = 0,
                        nl->inppos = 0,
 #ifdef CONFIG_SBNI_MULTILINE
-                       ((struct net_local *)netdev_priv(nl->master))
-                               ->stats.rx_errors++,
-                       ((struct net_local *)netdev_priv(nl->master))
-                               ->stats.rx_missed_errors++;
+                       nl->master->stats.rx_errors++,
+                       nl->master->stats.rx_missed_errors++;
 #else
-                       nl->stats.rx_errors++,
-                       nl->stats.rx_missed_errors++;
+                       dev->stats.rx_errors++,
+                       dev->stats.rx_missed_errors++;
 #endif
                        /* now skip all frames until is_first != 0 */
        } else
                 */
                nl->wait_frameno = 0,
 #ifdef CONFIG_SBNI_MULTILINE
-               ((struct net_local *)netdev_priv(nl->master))
-                       ->stats.rx_errors++,
-               ((struct net_local *)netdev_priv(nl->master))
-                       ->stats.rx_crc_errors++;
+               nl->master->stats.rx_errors++,
+               nl->master->stats.rx_crc_errors++;
 #else
-               nl->stats.rx_errors++,
-               nl->stats.rx_crc_errors++;
+               dev->stats.rx_errors++,
+               dev->stats.rx_crc_errors++;
 #endif
 
        return  frame_ok;
 
 
 static inline void
-send_complete( struct net_local  *nl )
+send_complete( struct net_device *dev )
 {
+       struct net_local  *nl = netdev_priv(dev);
+
 #ifdef CONFIG_SBNI_MULTILINE
-       ((struct net_local *)netdev_priv(nl->master))->stats.tx_packets++;
-       ((struct net_local *)netdev_priv(nl->master))->stats.tx_bytes
-               += nl->tx_buf_p->len;
+       nl->master->stats.tx_packets++;
+       nl->master->stats.tx_bytes += nl->tx_buf_p->len;
 #else
-       nl->stats.tx_packets++;
-       nl->stats.tx_bytes += nl->tx_buf_p->len;
+       dev->stats.tx_packets++;
+       dev->stats.tx_bytes += nl->tx_buf_p->len;
 #endif
        dev_kfree_skb_irq( nl->tx_buf_p );
 
                                                   nl->maxframe,
                                                   nl->tx_buf_p->len - nl->outpos);
                        else
-                               send_complete( nl ),
+                               send_complete( dev ),
 #ifdef CONFIG_SBNI_MULTILINE
                                netif_wake_queue( nl->master );
 #else
                dev_kfree_skb_any( nl->tx_buf_p ),
                nl->tx_buf_p = NULL,
 #ifdef CONFIG_SBNI_MULTILINE
-               ((struct net_local *)netdev_priv(nl->master))
-                       ->stats.tx_errors++,
-               ((struct net_local *)netdev_priv(nl->master))
-                       ->stats.tx_carrier_errors++;
+               nl->master->stats.tx_errors++,
+               nl->master->stats.tx_carrier_errors++;
 #else
-               nl->stats.tx_errors++,
-               nl->stats.tx_carrier_errors++;
+               dev->stats.tx_errors++,
+               dev->stats.tx_carrier_errors++;
 #endif
 
        nl->tx_frameno  = 0;
 #ifdef CONFIG_SBNI_MULTILINE
        skb->protocol = eth_type_trans( skb, nl->master );
        netif_rx( skb );
-       ++((struct net_local *)netdev_priv(nl->master))->stats.rx_packets;
-       ((struct net_local *)netdev_priv(nl->master))->stats.rx_bytes +=
-               nl->inppos;
+       ++nl->master->stats.rx_packets;
+       nl->master->stats.rx_bytes += nl->inppos;
 #else
        skb->protocol = eth_type_trans( skb, dev );
        netif_rx( skb );
-       ++nl->stats.rx_packets;
-       nl->stats.rx_bytes += nl->inppos;
+       ++dev->stats.rx_packets;
+       dev->stats.rx_bytes += nl->inppos;
 #endif
        nl->rx_buf_p = NULL;    /* protocol driver will clear this sk_buff */
 }
 handler_attached:
 
        spin_lock( &nl->lock );
-       memset( &nl->stats, 0, sizeof(struct net_device_stats) );
+       memset( &dev->stats, 0, sizeof(struct net_device_stats) );
        memset( &nl->in_stats, 0, sizeof(struct sbni_in_stats) );
 
        card_start( dev );
 
        /* Summary statistics of MultiLine operation will be stored
           in master's counters */
-       memset( &snl->stats, 0, sizeof(struct net_device_stats) );
+       memset( &slave_dev->stats, 0, sizeof(struct net_device_stats) );
        netif_stop_queue( slave_dev );
        netif_wake_queue( dev );        /* Now we are able to transmit */
 
 
 #endif
 
-
-static struct net_device_stats *
-sbni_get_stats( struct net_device  *dev )
-{
-       return  &((struct net_local *)netdev_priv(dev))->stats;
-}
-
-
 static void
 set_multicast_list( struct net_device  *dev )
 {