u32 isr_count;
        u8 rmii_en;
        u8 version;
-       struct net_device_stats net_dev_stats;
        u32 mac_hash1;
        u32 mac_hash2;
        u32 multicast_hash_cnt[EMAC_NUM_MULTICAST_BITS];
                                void **net_data_tokens,
                                int num_tokens, u32 ch)
 {
+       struct net_device *ndev = priv->ndev;
        u32 cnt;
 
-       if (unlikely(num_tokens && netif_queue_stopped(priv->ndev)))
-               netif_start_queue(priv->ndev);
+       if (unlikely(num_tokens && netif_queue_stopped(dev)))
+               netif_start_queue(dev);
        for (cnt = 0; cnt < num_tokens; cnt++) {
                struct sk_buff *skb = (struct sk_buff *)net_data_tokens[cnt];
                if (skb == NULL)
                        continue;
-               priv->net_dev_stats.tx_packets++;
-               priv->net_dev_stats.tx_bytes += skb->len;
+               ndev->stats.tx_packets++;
+               ndev->stats.tx_bytes += skb->len;
                dev_kfree_skb_any(skb);
        }
        return 0;
                                        " err. Out of TX BD's");
                        netif_stop_queue(priv->ndev);
                }
-               priv->net_dev_stats.tx_dropped++;
+               ndev->stats.tx_dropped++;
                return NETDEV_TX_BUSY;
        }
 
        if (netif_msg_tx_err(priv))
                dev_err(emac_dev, "DaVinci EMAC: xmit timeout, restarting TX");
 
-       priv->net_dev_stats.tx_errors++;
+       ndev->stats.tx_errors++;
        emac_int_disable(priv);
        emac_stop_txch(priv, EMAC_DEF_TX_CH);
        emac_cleanup_txch(priv, EMAC_DEF_TX_CH);
 static int emac_net_rx_cb(struct emac_priv *priv,
                          struct emac_netpktobj *net_pkt_list)
 {
-       struct sk_buff *p_skb;
-       p_skb = (struct sk_buff *)net_pkt_list->pkt_token;
+       struct net_device *ndev = priv->ndev;
+       struct sk_buff *p_skb = net_pkt_list->pkt_token;
        /* set length of packet */
        skb_put(p_skb, net_pkt_list->pkt_length);
        p_skb->protocol = eth_type_trans(p_skb, priv->ndev);
        netif_receive_skb(p_skb);
-       priv->net_dev_stats.rx_bytes += net_pkt_list->pkt_length;
-       priv->net_dev_stats.rx_packets++;
+       ndev->stats.rx_bytes += net_pkt_list->pkt_length;
+       ndev->stats.rx_packets++;
        return 0;
 }
 
        else
                stats_clear_mask = 0;
 
-       priv->net_dev_stats.multicast += emac_read(EMAC_RXMCASTFRAMES);
+       ndev->stats.multicast += emac_read(EMAC_RXMCASTFRAMES);
        emac_write(EMAC_RXMCASTFRAMES, stats_clear_mask);
 
-       priv->net_dev_stats.collisions += (emac_read(EMAC_TXCOLLISION) +
+       ndev->stats.collisions += (emac_read(EMAC_TXCOLLISION) +
                                           emac_read(EMAC_TXSINGLECOLL) +
                                           emac_read(EMAC_TXMULTICOLL));
        emac_write(EMAC_TXCOLLISION, stats_clear_mask);
        emac_write(EMAC_TXSINGLECOLL, stats_clear_mask);
        emac_write(EMAC_TXMULTICOLL, stats_clear_mask);
 
-       priv->net_dev_stats.rx_length_errors += (emac_read(EMAC_RXOVERSIZED) +
+       ndev->stats.rx_length_errors += (emac_read(EMAC_RXOVERSIZED) +
                                                emac_read(EMAC_RXJABBER) +
                                                emac_read(EMAC_RXUNDERSIZED));
        emac_write(EMAC_RXOVERSIZED, stats_clear_mask);
        emac_write(EMAC_RXJABBER, stats_clear_mask);
        emac_write(EMAC_RXUNDERSIZED, stats_clear_mask);
 
-       priv->net_dev_stats.rx_over_errors += (emac_read(EMAC_RXSOFOVERRUNS) +
+       ndev->stats.rx_over_errors += (emac_read(EMAC_RXSOFOVERRUNS) +
                                               emac_read(EMAC_RXMOFOVERRUNS));
        emac_write(EMAC_RXSOFOVERRUNS, stats_clear_mask);
        emac_write(EMAC_RXMOFOVERRUNS, stats_clear_mask);
 
-       priv->net_dev_stats.rx_fifo_errors += emac_read(EMAC_RXDMAOVERRUNS);
+       ndev->stats.rx_fifo_errors += emac_read(EMAC_RXDMAOVERRUNS);
        emac_write(EMAC_RXDMAOVERRUNS, stats_clear_mask);
 
-       priv->net_dev_stats.tx_carrier_errors +=
+       ndev->stats.tx_carrier_errors +=
                emac_read(EMAC_TXCARRIERSENSE);
        emac_write(EMAC_TXCARRIERSENSE, stats_clear_mask);
 
-       priv->net_dev_stats.tx_fifo_errors = emac_read(EMAC_TXUNDERRUN);
+       ndev->stats.tx_fifo_errors = emac_read(EMAC_TXUNDERRUN);
        emac_write(EMAC_TXUNDERRUN, stats_clear_mask);
 
-       return &priv->net_dev_stats;
+       return &ndev->stats;
 }
 
 static const struct net_device_ops emac_netdev_ops = {