static void sgiseeq_set_multicast(struct net_device *dev)
 {
-       struct sgiseeq_private *sp = (struct sgiseeq_private *) dev->priv;
+       struct sgiseeq_private *sp = netdev_priv(dev);
        unsigned char oldmode = sp->mode;
 
        if(dev->flags & IFF_PROMISC)
 
        if (ret)
                goto err_out;
 
-       sis_priv = net_dev->priv;
+       sis_priv = netdev_priv(net_dev);
        net_dev->base_addr = ioaddr;
        net_dev->irq = pci_dev->irq;
        sis_priv->pci_dev = pci_dev;
 
 static int __devinit sis900_mii_probe(struct net_device * net_dev)
 {
-       struct sis900_private * sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        const char *dev_name = pci_name(sis_priv->pci_dev);
        u16 poll_bit = MII_STAT_LINK, status = 0;
        unsigned long timeout = jiffies + 5 * HZ;
 
 static u16 sis900_default_phy(struct net_device * net_dev)
 {
-       struct sis900_private * sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        struct mii_phy *phy = NULL, *phy_home = NULL,
                *default_phy = NULL, *phy_lan = NULL;
        u16 status;
 static int
 sis900_open(struct net_device *net_dev)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        long ioaddr = net_dev->base_addr;
        int ret;
 
 static void
 sis900_init_rxfilter (struct net_device * net_dev)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        long ioaddr = net_dev->base_addr;
        u32 rfcrSave;
        u32 i;
 static void
 sis900_init_tx_ring(struct net_device *net_dev)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        long ioaddr = net_dev->base_addr;
        int i;
 
 static void
 sis900_init_rx_ring(struct net_device *net_dev)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        long ioaddr = net_dev->base_addr;
        int i;
 
 
 static void sis630_set_eq(struct net_device *net_dev, u8 revision)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        u16 reg14h, eq_value=0, max_value=0, min_value=0;
        int i, maxcount=10;
 
 static void sis900_timer(unsigned long data)
 {
        struct net_device *net_dev = (struct net_device *)data;
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        struct mii_phy *mii_phy = sis_priv->mii;
        static const int next_tick = 5*HZ;
        u16 status;
 
 static void sis900_check_mode(struct net_device *net_dev, struct mii_phy *mii_phy)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        long ioaddr = net_dev->base_addr;
        int speed, duplex;
 
 
 static void sis900_auto_negotiate(struct net_device *net_dev, int phy_addr)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        int i = 0;
        u32 status;
 
 
 static void sis900_read_mode(struct net_device *net_dev, int *speed, int *duplex)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        struct mii_phy *phy = sis_priv->mii;
        int phy_addr = sis_priv->cur_phy;
        u32 status;
 
 static void sis900_tx_timeout(struct net_device *net_dev)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        long ioaddr = net_dev->base_addr;
        unsigned long flags;
        int i;
 static int
 sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        long ioaddr = net_dev->base_addr;
        unsigned int  entry;
        unsigned long flags;
 static irqreturn_t sis900_interrupt(int irq, void *dev_instance)
 {
        struct net_device *net_dev = dev_instance;
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        int boguscnt = max_interrupt_work;
        long ioaddr = net_dev->base_addr;
        u32 status;
 
 static int sis900_rx(struct net_device *net_dev)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        long ioaddr = net_dev->base_addr;
        unsigned int entry = sis_priv->cur_rx % NUM_RX_DESC;
        u32 rx_status = sis_priv->rx_ring[entry].cmdsts;
 
 static void sis900_finish_xmit (struct net_device *net_dev)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
 
        for (; sis_priv->dirty_tx != sis_priv->cur_tx; sis_priv->dirty_tx++) {
                struct sk_buff *skb;
 static int sis900_close(struct net_device *net_dev)
 {
        long ioaddr = net_dev->base_addr;
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        struct sk_buff *skb;
        int i;
 
 static void sis900_get_drvinfo(struct net_device *net_dev,
                               struct ethtool_drvinfo *info)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
 
        strcpy (info->driver, SIS900_MODULE_NAME);
        strcpy (info->version, SIS900_DRV_VERSION);
 
 static u32 sis900_get_msglevel(struct net_device *net_dev)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        return sis_priv->msg_enable;
 }
 
 static void sis900_set_msglevel(struct net_device *net_dev, u32 value)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        sis_priv->msg_enable = value;
 }
 
 static u32 sis900_get_link(struct net_device *net_dev)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        return mii_link_ok(&sis_priv->mii_info);
 }
 
 static int sis900_get_settings(struct net_device *net_dev,
                                struct ethtool_cmd *cmd)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        spin_lock_irq(&sis_priv->lock);
        mii_ethtool_gset(&sis_priv->mii_info, cmd);
        spin_unlock_irq(&sis_priv->lock);
 static int sis900_set_settings(struct net_device *net_dev,
                                struct ethtool_cmd *cmd)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        int rt;
        spin_lock_irq(&sis_priv->lock);
        rt = mii_ethtool_sset(&sis_priv->mii_info, cmd);
 
 static int sis900_nway_reset(struct net_device *net_dev)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        return mii_nway_restart(&sis_priv->mii_info);
 }
 
 
 static int sis900_set_wol(struct net_device *net_dev, struct ethtool_wolinfo *wol)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        long pmctrl_addr = net_dev->base_addr + pmctrl;
        u32 cfgpmcsr = 0, pmctrl_bits = 0;
 
 
 static int mii_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd)
 {
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        struct mii_ioctl_data *data = if_mii(rq);
 
        switch(cmd) {
 
 static int sis900_set_config(struct net_device *dev, struct ifmap *map)
 {
-       struct sis900_private *sis_priv = dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(dev);
        struct mii_phy *mii_phy = sis_priv->mii;
 
        u16 status;
 static void set_rx_mode(struct net_device *net_dev)
 {
        long ioaddr = net_dev->base_addr;
-       struct sis900_private * sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        u16 mc_filter[16] = {0};        /* 256/128 bits multicast hash table */
        int i, table_entries;
        u32 rx_mode;
 
 static void sis900_reset(struct net_device *net_dev)
 {
-       struct sis900_private * sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        long ioaddr = net_dev->base_addr;
        int i = 0;
        u32 status = TxRCMP | RxRCMP;
 static void __devexit sis900_remove(struct pci_dev *pci_dev)
 {
        struct net_device *net_dev = pci_get_drvdata(pci_dev);
-       struct sis900_private * sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        struct mii_phy *phy = NULL;
 
        while (sis_priv->first_mii) {
 static int sis900_resume(struct pci_dev *pci_dev)
 {
        struct net_device *net_dev = pci_get_drvdata(pci_dev);
-       struct sis900_private *sis_priv = net_dev->priv;
+       struct sis900_private *sis_priv = netdev_priv(net_dev);
        long ioaddr = net_dev->base_addr;
 
        if(!netif_running(net_dev))
 
        printk("ADDR: %pM\n", dev->dev_addr);
 
        /* set the private data to zero by default */
-       memset(dev->priv, 0, sizeof(struct smc_local));
+       memset(netdev_priv(dev), 0, sizeof(struct smc_local));
 
        /* Grab the IRQ */
        retval = request_irq(dev->irq, &smc_interrupt, 0, DRV_NAME, dev);
        int     i;      /* used to set hw ethernet address */
 
        /* clear out all the junk that was put here before... */
-       memset(dev->priv, 0, sizeof(struct smc_local));
+       memset(netdev_priv(dev), 0, sizeof(struct smc_local));
 
        /* reset the hardware */
 
        smc_enable( dev->base_addr );
        dev->trans_start = jiffies;
        /* clear anything saved */
-       ((struct smc_local *)dev->priv)->saved_skb = NULL;
+       ((struct smc_local *)netdev_priv(dev))->saved_skb = NULL;
        netif_wake_queue(dev);
 }
 
 
 static inline void sonic_cda_put(struct net_device* dev, int entry,
                                 int offset, __u16 val)
 {
-       struct sonic_local* lp = (struct sonic_local *) dev->priv;
+       struct sonic_local *lp = netdev_priv(dev);
        sonic_buf_put(lp->cda, lp->dma_bitmode,
                      (entry * SIZEOF_SONIC_CD) + offset, val);
 }
 static inline __u16 sonic_cda_get(struct net_device* dev, int entry,
                                  int offset)
 {
-       struct sonic_local* lp = (struct sonic_local *) dev->priv;
+       struct sonic_local *lp = netdev_priv(dev);
        return sonic_buf_get(lp->cda, lp->dma_bitmode,
                             (entry * SIZEOF_SONIC_CD) + offset);
 }
 
 static inline void sonic_set_cam_enable(struct net_device* dev, __u16 val)
 {
-       struct sonic_local* lp = (struct sonic_local *) dev->priv;
+       struct sonic_local *lp = netdev_priv(dev);
        sonic_buf_put(lp->cda, lp->dma_bitmode, SONIC_CDA_CAM_ENABLE, val);
 }
 
 static inline __u16 sonic_get_cam_enable(struct net_device* dev)
 {
-       struct sonic_local* lp = (struct sonic_local *) dev->priv;
+       struct sonic_local *lp = netdev_priv(dev);
        return sonic_buf_get(lp->cda, lp->dma_bitmode, SONIC_CDA_CAM_ENABLE);
 }
 
 static inline void sonic_tda_put(struct net_device* dev, int entry,
                                 int offset, __u16 val)
 {
-       struct sonic_local* lp = (struct sonic_local *) dev->priv;
+       struct sonic_local *lp = netdev_priv(dev);
        sonic_buf_put(lp->tda, lp->dma_bitmode,
                      (entry * SIZEOF_SONIC_TD) + offset, val);
 }
 static inline __u16 sonic_tda_get(struct net_device* dev, int entry,
                                  int offset)
 {
-       struct sonic_local* lp = (struct sonic_local *) dev->priv;
+       struct sonic_local *lp = netdev_priv(dev);
        return sonic_buf_get(lp->tda, lp->dma_bitmode,
                             (entry * SIZEOF_SONIC_TD) + offset);
 }
 static inline void sonic_rda_put(struct net_device* dev, int entry,
                                 int offset, __u16 val)
 {
-       struct sonic_local* lp = (struct sonic_local *) dev->priv;
+       struct sonic_local *lp = netdev_priv(dev);
        sonic_buf_put(lp->rda, lp->dma_bitmode,
                      (entry * SIZEOF_SONIC_RD) + offset, val);
 }
 static inline __u16 sonic_rda_get(struct net_device* dev, int entry,
                                  int offset)
 {
-       struct sonic_local* lp = (struct sonic_local *) dev->priv;
+       struct sonic_local *lp = netdev_priv(dev);
        return sonic_buf_get(lp->rda, lp->dma_bitmode,
                             (entry * SIZEOF_SONIC_RD) + offset);
 }
 static inline void sonic_rra_put(struct net_device* dev, int entry,
                                 int offset, __u16 val)
 {
-       struct sonic_local* lp = (struct sonic_local *) dev->priv;
+       struct sonic_local *lp = netdev_priv(dev);
        sonic_buf_put(lp->rra, lp->dma_bitmode,
                      (entry * SIZEOF_SONIC_RR) + offset, val);
 }
 static inline __u16 sonic_rra_get(struct net_device* dev, int entry,
                                  int offset)
 {
-       struct sonic_local* lp = (struct sonic_local *) dev->priv;
+       struct sonic_local *lp = netdev_priv(dev);
        return sonic_buf_get(lp->rra, lp->dma_bitmode,
                             (entry * SIZEOF_SONIC_RR) + offset);
 }
 
 static u32
 spider_net_ethtool_get_rx_csum(struct net_device *netdev)
 {
-       struct spider_net_card *card = netdev->priv;
+       struct spider_net_card *card = netdev_priv(netdev);
 
        return card->options.rx_csum;
 }
 static int
 spider_net_ethtool_set_rx_csum(struct net_device *netdev, u32 n)
 {
-       struct spider_net_card *card = netdev->priv;
+       struct spider_net_card *card = netdev_priv(netdev);
 
        card->options.rx_csum = n;
        return 0;
 spider_net_ethtool_get_ringparam(struct net_device *netdev,
                                 struct ethtool_ringparam *ering)
 {
-       struct spider_net_card *card = netdev->priv;
+       struct spider_net_card *card = netdev_priv(netdev);
 
        ering->tx_max_pending = SPIDER_NET_TX_DESCRIPTORS_MAX;
        ering->tx_pending = card->tx_chain.num_desc;
 static void spider_net_get_ethtool_stats(struct net_device *netdev,
                struct ethtool_stats *stats, u64 *data)
 {
-       struct spider_net_card *card = netdev->priv;
+       struct spider_net_card *card = netdev_priv(netdev);
 
        data[0] = netdev->stats.tx_packets;
        data[1] = netdev->stats.tx_bytes;
 
  */
 static void alloc586(struct net_device *dev)
 {
-       struct priv *p =        (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        sun3_reset586();
        DELAY(1);
                goto out;
        }
 
-       ((struct priv *) (dev->priv))->memtop = (char *)dvma_btov(dev->mem_start);
-       ((struct priv *) (dev->priv))->base = (unsigned long) dvma_btov(0);
+       ((struct priv *)netdev_priv(dev))->memtop =
+                                       (char *)dvma_btov(dev->mem_start);
+       ((struct priv *)netdev_priv(dev))->base = (unsigned long) dvma_btov(0);
        alloc586(dev);
 
        /* set number of receive-buffs according to memsize */
        if(size == 0x2000)
-               ((struct priv *) dev->priv)->num_recv_buffs = NUM_RECV_BUFFS_8;
+               ((struct priv *)netdev_priv(dev))->num_recv_buffs =
+                                                       NUM_RECV_BUFFS_8;
        else if(size == 0x4000)
-               ((struct priv *) dev->priv)->num_recv_buffs = NUM_RECV_BUFFS_16;
+               ((struct priv *)netdev_priv(dev))->num_recv_buffs =
+                                                       NUM_RECV_BUFFS_16;
        else
-               ((struct priv *) dev->priv)->num_recv_buffs = NUM_RECV_BUFFS_32;
+               ((struct priv *)netdev_priv(dev))->num_recv_buffs =
+                                                       NUM_RECV_BUFFS_32;
 
        printk("Memaddr: 0x%lx, Memsize: %d, IRQ %d\n",dev->mem_start,size, dev->irq);
 
 {
        void *ptr;
        int i,result=0;
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
        volatile struct configure_cmd_struct    *cfg_cmd;
        volatile struct iasetup_cmd_struct *ias_cmd;
        volatile struct tdr_cmd_struct *tdr_cmd;
        volatile struct rfd_struct *rfd = (struct rfd_struct *)ptr;
        volatile struct rbd_struct *rbd;
        int i;
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        memset((char *) rfd,0,sizeof(struct rfd_struct)*(p->num_recv_buffs+rfdadd));
        p->rfd_first = rfd;
                printk ("sun3_82586-interrupt: irq %d for unknown device.\n",irq);
                return IRQ_NONE;
        }
-       p = (struct priv *) dev->priv;
+       p = netdev_priv(dev);
 
        if(debuglevel > 1)
                printk("I");
        unsigned short totlen;
        struct sk_buff *skb;
        struct rbd_struct *rbd;
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        if(debuglevel > 0)
                printk("R");
 
 static void sun3_82586_rnr_int(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        p->stats.rx_errors++;
 
 static void sun3_82586_xmt_int(struct net_device *dev)
 {
        int status;
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        if(debuglevel > 0)
                printk("X");
 
 static void startrecv586(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        WAIT_4_SCB_CMD();
        WAIT_4_SCB_CMD_RUC();
 
 static void sun3_82586_timeout(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 #ifndef NO_NOPCOMMANDS
        if(p->scb->cus & CU_ACTIVE) /* COMMAND-UNIT active? */
        {
 #ifndef NO_NOPCOMMANDS
        int next_nop;
 #endif
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        if(skb->len > XMIT_BUFF_SIZE)
        {
 
 static struct net_device_stats *sun3_82586_get_stats(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
        unsigned short crc,aln,rsc,ovrn;
 
        crc = swab16(p->scb->crc_errs); /* get error-statistic from the ni82586 */
  */
 void sun3_82586_dump(struct net_device *dev,void *ptr)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
        struct dump_cmd_struct *dump_cmd = (struct dump_cmd_struct *) ptr;
        int i;
 
 
 
 static int bigmac_open(struct net_device *dev)
 {
-       struct bigmac *bp = (struct bigmac *) dev->priv;
+       struct bigmac *bp = netdev_priv(dev);
        int ret;
 
        ret = request_irq(dev->irq, &bigmac_interrupt, IRQF_SHARED, dev->name, bp);
 
 static int bigmac_close(struct net_device *dev)
 {
-       struct bigmac *bp = (struct bigmac *) dev->priv;
+       struct bigmac *bp = netdev_priv(dev);
 
        del_timer(&bp->bigmac_timer);
        bp->timer_state = asleep;
 
 static void bigmac_tx_timeout(struct net_device *dev)
 {
-       struct bigmac *bp = (struct bigmac *) dev->priv;
+       struct bigmac *bp = netdev_priv(dev);
 
        bigmac_init_hw(bp, 0);
        netif_wake_queue(dev);
 /* Put a packet on the wire. */
 static int bigmac_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       struct bigmac *bp = (struct bigmac *) dev->priv;
+       struct bigmac *bp = netdev_priv(dev);
        int len, entry;
        u32 mapping;
 
 
 static struct net_device_stats *bigmac_get_stats(struct net_device *dev)
 {
-       struct bigmac *bp = (struct bigmac *) dev->priv;
+       struct bigmac *bp = netdev_priv(dev);
 
        bigmac_get_counters(bp, bp->bregs);
        return &bp->enet_stats;
 
 static void bigmac_set_multicast(struct net_device *dev)
 {
-       struct bigmac *bp = (struct bigmac *) dev->priv;
+       struct bigmac *bp = netdev_priv(dev);
        void __iomem *bregs = bp->bregs;
        struct dev_mc_list *dmi = dev->mc_list;
        char *addrs;
 
 static u32 bigmac_get_link(struct net_device *dev)
 {
-       struct bigmac *bp = dev->priv;
+       struct bigmac *bp = netdev_priv(dev);
 
        spin_lock_irq(&bp->lock);
        bp->sw_bmsr = bigmac_tcvr_read(bp, bp->tregs, BIGMAC_BMSR);
 
 
 static inline int _phy_read(struct net_device *dev, int mii_id, int reg)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        return __phy_read(gp, mii_id, reg);
 }
 
 
 static inline void _phy_write(struct net_device *dev, int mii_id, int reg, int val)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        __phy_write(gp, mii_id, reg, val & 0xffff);
 }
 
 static irqreturn_t gem_interrupt(int irq, void *dev_id)
 {
        struct net_device *dev = dev_id;
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        unsigned long flags;
 
        /* Swallow interrupts when shutting the chip down, though
 
 static void gem_tx_timeout(struct net_device *dev)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
 
        printk(KERN_ERR "%s: transmit timed out, resetting\n", dev->name);
        if (!gp->running) {
 
 static int gem_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        int entry;
        u64 ctrl;
        unsigned long flags;
 
 static int gem_do_start(struct net_device *dev)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        unsigned long flags;
 
        spin_lock_irqsave(&gp->lock, flags);
 
 static void gem_do_stop(struct net_device *dev, int wol)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        unsigned long flags;
 
        spin_lock_irqsave(&gp->lock, flags);
 
 static int gem_open(struct net_device *dev)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        int rc = 0;
 
        mutex_lock(&gp->pm_mutex);
 
 static int gem_close(struct net_device *dev)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
 
        mutex_lock(&gp->pm_mutex);
 
 static int gem_suspend(struct pci_dev *pdev, pm_message_t state)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        unsigned long flags;
 
        mutex_lock(&gp->pm_mutex);
 static int gem_resume(struct pci_dev *pdev)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        unsigned long flags;
 
        printk(KERN_INFO "%s: resuming\n", dev->name);
 
 static struct net_device_stats *gem_get_stats(struct net_device *dev)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        struct net_device_stats *stats = &gp->net_stats;
 
        spin_lock_irq(&gp->lock);
 static int gem_set_mac_address(struct net_device *dev, void *addr)
 {
        struct sockaddr *macaddr = (struct sockaddr *) addr;
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        unsigned char *e = &dev->dev_addr[0];
 
        if (!is_valid_ether_addr(macaddr->sa_data))
 
 static void gem_set_multicast(struct net_device *dev)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        u32 rxcfg, rxcfg_new;
        int limit = 10000;
 
 
 static int gem_change_mtu(struct net_device *dev, int new_mtu)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
 
        if (new_mtu < GEM_MIN_MTU || new_mtu > GEM_MAX_MTU)
                return -EINVAL;
 
 static void gem_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
 
        strcpy(info->driver, DRV_NAME);
        strcpy(info->version, DRV_VERSION);
 
 static int gem_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
 
        if (gp->phy_type == phy_mii_mdio0 ||
            gp->phy_type == phy_mii_mdio1) {
 
 static int gem_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
 
        /* Verify the settings we care about. */
        if (cmd->autoneg != AUTONEG_ENABLE &&
 
 static int gem_nway_reset(struct net_device *dev)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
 
        if (!gp->want_autoneg)
                return -EINVAL;
 
 static u32 gem_get_msglevel(struct net_device *dev)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        return gp->msg_enable;
 }
 
 static void gem_set_msglevel(struct net_device *dev, u32 value)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        gp->msg_enable = value;
 }
 
 
 static void gem_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
 
        /* Add more when I understand how to program the chip */
        if (gp->has_wol) {
 
 static int gem_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
 
        if (!gp->has_wol)
                return -EOPNOTSUPP;
 
 static int gem_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 {
-       struct gem *gp = dev->priv;
+       struct gem *gp = netdev_priv(dev);
        struct mii_ioctl_data *data = if_mii(ifr);
        int rc = -EOPNOTSUPP;
        unsigned long flags;
        struct net_device *dev = pci_get_drvdata(pdev);
 
        if (dev) {
-               struct gem *gp = dev->priv;
+               struct gem *gp = netdev_priv(dev);
 
                unregister_netdev(dev);
 
        }
        SET_NETDEV_DEV(dev, &pdev->dev);
 
-       gp = dev->priv;
+       gp = netdev_priv(dev);
 
        err = pci_request_regions(pdev, DRV_NAME);
        if (err) {
 
 
        for (i = 0; i < 4; i++) {
                struct net_device *dev = qp->happy_meals[i];
-               struct happy_meal *hp  = dev->priv;
+               struct happy_meal *hp  = netdev_priv(dev);
                u32 happy_status       = hme_read32(hp, hp->gregs + GREG_STAT);
 
                HMD(("quattro_interrupt: status=%08x ", happy_status));
 
 static int happy_meal_open(struct net_device *dev)
 {
-       struct happy_meal *hp = dev->priv;
+       struct happy_meal *hp = netdev_priv(dev);
        int res;
 
        HMD(("happy_meal_open: "));
 
 static int happy_meal_close(struct net_device *dev)
 {
-       struct happy_meal *hp = dev->priv;
+       struct happy_meal *hp = netdev_priv(dev);
 
        spin_lock_irq(&hp->happy_lock);
        happy_meal_stop(hp, hp->gregs);
 
 static void happy_meal_tx_timeout(struct net_device *dev)
 {
-       struct happy_meal *hp = dev->priv;
+       struct happy_meal *hp = netdev_priv(dev);
 
        printk (KERN_ERR "%s: transmit timed out, resetting\n", dev->name);
        tx_dump_log();
 
 static int happy_meal_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       struct happy_meal *hp = dev->priv;
+       struct happy_meal *hp = netdev_priv(dev);
        int entry;
        u32 tx_flags;
 
 
 static struct net_device_stats *happy_meal_get_stats(struct net_device *dev)
 {
-       struct happy_meal *hp = dev->priv;
+       struct happy_meal *hp = netdev_priv(dev);
 
        spin_lock_irq(&hp->happy_lock);
        happy_meal_get_counters(hp, hp->bigmacregs);
 
 static void happy_meal_set_multicast(struct net_device *dev)
 {
-       struct happy_meal *hp = dev->priv;
+       struct happy_meal *hp = netdev_priv(dev);
        void __iomem *bregs = hp->bigmacregs;
        struct dev_mc_list *dmi = dev->mc_list;
        char *addrs;
 /* Ethtool support... */
 static int hme_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 {
-       struct happy_meal *hp = dev->priv;
+       struct happy_meal *hp = netdev_priv(dev);
 
        cmd->supported =
                (SUPPORTED_10baseT_Half | SUPPORTED_10baseT_Full |
 
 static int hme_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 {
-       struct happy_meal *hp = dev->priv;
+       struct happy_meal *hp = netdev_priv(dev);
 
        /* Verify the settings we care about. */
        if (cmd->autoneg != AUTONEG_ENABLE &&
 
 static void hme_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
 {
-       struct happy_meal *hp = dev->priv;
+       struct happy_meal *hp = netdev_priv(dev);
 
        strcpy(info->driver, "sunhme");
        strcpy(info->version, "2.02");
 
 static u32 hme_get_link(struct net_device *dev)
 {
-       struct happy_meal *hp = dev->priv;
+       struct happy_meal *hp = netdev_priv(dev);
 
        spin_lock_irq(&hp->happy_lock);
        hp->sw_bmcr = happy_meal_tcvr_read(hp, hp->tcvregs, MII_BMCR);
 
        dev->base_addr = (long) pdev;
 
-       hp = (struct happy_meal *)dev->priv;
+       hp = netdev_priv(dev);
        memset(hp, 0, sizeof(*hp));
 
        hp->happy_dev = pdev;
 
 
 static int qe_open(struct net_device *dev)
 {
-       struct sunqe *qep = (struct sunqe *) dev->priv;
+       struct sunqe *qep = netdev_priv(dev);
 
        qep->mconfig = (MREGS_MCONFIG_TXENAB |
                        MREGS_MCONFIG_RXENAB |
 
 static int qe_close(struct net_device *dev)
 {
-       struct sunqe *qep = (struct sunqe *) dev->priv;
+       struct sunqe *qep = netdev_priv(dev);
 
        qe_stop(qep);
        return 0;
 
 static void qe_tx_timeout(struct net_device *dev)
 {
-       struct sunqe *qep = (struct sunqe *) dev->priv;
+       struct sunqe *qep = netdev_priv(dev);
        int tx_full;
 
        spin_lock_irq(&qep->lock);
 /* Get a packet queued to go onto the wire. */
 static int qe_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       struct sunqe *qep = (struct sunqe *) dev->priv;
+       struct sunqe *qep = netdev_priv(dev);
        struct sunqe_buffers *qbufs = qep->buffers;
        __u32 txbuf_dvma, qbufs_dvma = qep->buffers_dvma;
        unsigned char *txbuf;
 
 static void qe_set_multicast(struct net_device *dev)
 {
-       struct sunqe *qep = (struct sunqe *) dev->priv;
+       struct sunqe *qep = netdev_priv(dev);
        struct dev_mc_list *dmi = dev->mc_list;
        u8 new_mconfig = qep->mconfig;
        char *addrs;
 static void qe_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
 {
        const struct linux_prom_registers *regs;
-       struct sunqe *qep = dev->priv;
+       struct sunqe *qep = netdev_priv(dev);
        struct of_device *op;
 
        strcpy(info->driver, "sunqe");
 
 static u32 qe_get_link(struct net_device *dev)
 {
-       struct sunqe *qep = dev->priv;
+       struct sunqe *qep = netdev_priv(dev);
        void __iomem *mregs = qep->mregs;
        u8 phyconfig;
 
 
 static irqreturn_t bdx_isr_napi(int irq, void *dev)
 {
        struct net_device *ndev = dev;
-       struct bdx_priv *priv = ndev->priv;
+       struct bdx_priv *priv = netdev_priv(ndev);
        u32 isr;
 
        ENTER;
        struct bdx_priv *priv = NULL;
 
        ENTER;
-       priv = ndev->priv;
+       priv = netdev_priv(ndev);
 
        napi_disable(&priv->napi);
 
        int rc;
 
        ENTER;
-       priv = ndev->priv;
+       priv = netdev_priv(ndev);
        bdx_reset(priv);
        if (netif_running(ndev))
                netif_stop_queue(priv->ndev);
 
 static int bdx_ioctl_priv(struct net_device *ndev, struct ifreq *ifr, int cmd)
 {
-       struct bdx_priv *priv = ndev->priv;
+       struct bdx_priv *priv = netdev_priv(ndev);
        u32 data[3];
        int error;
 
  */
 static void __bdx_vlan_rx_vid(struct net_device *ndev, uint16_t vid, int enable)
 {
-       struct bdx_priv *priv = ndev->priv;
+       struct bdx_priv *priv = netdev_priv(ndev);
        u32 reg, bit, val;
 
        ENTER;
 static void
 bdx_vlan_rx_register(struct net_device *ndev, struct vlan_group *grp)
 {
-       struct bdx_priv *priv = ndev->priv;
+       struct bdx_priv *priv = netdev_priv(ndev);
 
        ENTER;
        DBG("device='%s', group='%p'\n", ndev->name, grp);
 
 static void bdx_setmulti(struct net_device *ndev)
 {
-       struct bdx_priv *priv = ndev->priv;
+       struct bdx_priv *priv = netdev_priv(ndev);
 
        u32 rxf_val =
            GMAC_RX_FILTER_AM | GMAC_RX_FILTER_AB | GMAC_RX_FILTER_OSEN;
 
 static int bdx_set_mac(struct net_device *ndev, void *p)
 {
-       struct bdx_priv *priv = ndev->priv;
+       struct bdx_priv *priv = netdev_priv(ndev);
        struct sockaddr *addr = p;
 
        ENTER;
 
 static struct net_device_stats *bdx_get_stats(struct net_device *ndev)
 {
-       struct bdx_priv *priv = ndev->priv;
+       struct bdx_priv *priv = netdev_priv(ndev);
        struct net_device_stats *net_stat = &priv->net_stats;
        return net_stat;
 }
  */
 static int bdx_tx_transmit(struct sk_buff *skb, struct net_device *ndev)
 {
-       struct bdx_priv *priv = ndev->priv;
+       struct bdx_priv *priv = netdev_priv(ndev);
        struct txd_fifo *f = &priv->txd_fifo0;
        int txd_checksum = 7;   /* full checksum */
        int txd_lgsnd = 0;
                        ndev->features |= NETIF_F_HIGHDMA;
 
        /************** priv ****************/
-               priv = nic->priv[port] = ndev->priv;
+               priv = nic->priv[port] = netdev_priv(ndev);
 
                memset(priv, 0, sizeof(struct bdx_priv));
                priv->pBdxRegs = nic->regs + port * 0x8000;
 {
        u32 rdintcm;
        u32 tdintcm;
-       struct bdx_priv *priv = netdev->priv;
+       struct bdx_priv *priv = netdev_priv(netdev);
 
        rdintcm = priv->rdintcm;
        tdintcm = priv->tdintcm;
 static void
 bdx_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo)
 {
-       struct bdx_priv *priv = netdev->priv;
+       struct bdx_priv *priv = netdev_priv(netdev);
 
        strlcat(drvinfo->driver, BDX_DRV_NAME, sizeof(drvinfo->driver));
        strlcat(drvinfo->version, BDX_DRV_VERSION, sizeof(drvinfo->version));
 {
        u32 rdintcm;
        u32 tdintcm;
-       struct bdx_priv *priv = netdev->priv;
+       struct bdx_priv *priv = netdev_priv(netdev);
 
        rdintcm = priv->rdintcm;
        tdintcm = priv->tdintcm;
 {
        u32 rdintcm;
        u32 tdintcm;
-       struct bdx_priv *priv = netdev->priv;
+       struct bdx_priv *priv = netdev_priv(netdev);
        int rx_coal;
        int tx_coal;
        int rx_max_coal;
 static void
 bdx_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
 {
-       struct bdx_priv *priv = netdev->priv;
+       struct bdx_priv *priv = netdev_priv(netdev);
 
        /*max_pending - the maximum-sized FIFO we allow */
        ring->rx_max_pending = bdx_rx_fifo_size_to_packets(3);
 static int
 bdx_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring)
 {
-       struct bdx_priv *priv = netdev->priv;
+       struct bdx_priv *priv = netdev_priv(netdev);
        int rx_size = 0;
        int tx_size = 0;
 
  */
 static int bdx_get_stats_count(struct net_device *netdev)
 {
-       struct bdx_priv *priv = netdev->priv;
+       struct bdx_priv *priv = netdev_priv(netdev);
        BDX_ASSERT(ARRAY_SIZE(bdx_stat_names)
                   != sizeof(struct bdx_stats) / sizeof(u64));
        return ((priv->stats_flag) ? ARRAY_SIZE(bdx_stat_names) : 0);
 static void bdx_get_ethtool_stats(struct net_device *netdev,
                                  struct ethtool_stats *stats, u64 *data)
 {
-       struct bdx_priv *priv = netdev->priv;
+       struct bdx_priv *priv = netdev_priv(netdev);
 
        if (priv->stats_flag) {
 
 
 static void    tms380tr_write_rpl_status(RPL *rpl, unsigned int Status);
 static void    tms380tr_write_tpl_status(TPL *tpl, unsigned int Status);
 
-#define SIFREADB(reg) (((struct net_local *)dev->priv)->sifreadb(dev, reg))
-#define SIFWRITEB(val, reg) (((struct net_local *)dev->priv)->sifwriteb(dev, val, reg))
-#define SIFREADW(reg) (((struct net_local *)dev->priv)->sifreadw(dev, reg))
-#define SIFWRITEW(val, reg) (((struct net_local *)dev->priv)->sifwritew(dev, val, reg))
+#define SIFREADB(reg) \
+       (((struct net_local *)netdev_priv(dev))->sifreadb(dev, reg))
+#define SIFWRITEB(val, reg) \
+       (((struct net_local *)netdev_priv(dev))->sifwriteb(dev, val, reg))
+#define SIFREADW(reg) \
+       (((struct net_local *)netdev_priv(dev))->sifreadw(dev, reg))
+#define SIFWRITEW(val, reg) \
+       (((struct net_local *)netdev_priv(dev))->sifwritew(dev, val, reg))
 
 
 
 {
        struct net_local *tms_local;
 
-       memset(dev->priv, 0, sizeof(struct net_local));
+       memset(netdev_priv(dev), 0, sizeof(struct net_local));
        tms_local = netdev_priv(dev);
        init_waitqueue_head(&tms_local->wait_for_tok_int);
        if (pdev->dma_mask)
 
 static irqreturn_t de_interrupt (int irq, void *dev_instance)
 {
        struct net_device *dev = dev_instance;
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
        u32 status;
 
        status = dr32(MacStatus);
 
 static int de_start_xmit (struct sk_buff *skb, struct net_device *dev)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
        unsigned int entry, tx_free;
        u32 mapping, len, flags = FirstFrag | LastFrag;
        struct de_desc *txd;
 
 static void build_setup_frame_hash(u16 *setup_frm, struct net_device *dev)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
        u16 hash_table[32];
        struct dev_mc_list *mclist;
        int i;
 
 static void build_setup_frame_perfect(u16 *setup_frm, struct net_device *dev)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
        struct dev_mc_list *mclist;
        int i;
        u16 *eaddrs;
 
 static void __de_set_rx_mode (struct net_device *dev)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
        u32 macmode;
        unsigned int entry;
        u32 mapping;
 static void de_set_rx_mode (struct net_device *dev)
 {
        unsigned long flags;
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
 
        spin_lock_irqsave (&de->lock, flags);
        __de_set_rx_mode(dev);
 
 static struct net_device_stats *de_get_stats(struct net_device *dev)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
 
        /* The chip only need report frame silently dropped. */
        spin_lock_irq(&de->lock);
 
 static int de_open (struct net_device *dev)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
        int rc;
 
        if (netif_msg_ifup(de))
 
 static int de_close (struct net_device *dev)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
        unsigned long flags;
 
        if (netif_msg_ifdown(de))
 
 static void de_tx_timeout (struct net_device *dev)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
 
        printk(KERN_DEBUG "%s: NIC status %08x mode %08x sia %08x desc %u/%u/%u\n",
               dev->name, dr32(MacStatus), dr32(MacMode), dr32(SIAStatus),
 
 static void de_get_drvinfo (struct net_device *dev,struct ethtool_drvinfo *info)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
 
        strcpy (info->driver, DRV_NAME);
        strcpy (info->version, DRV_VERSION);
 
 static int de_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
        int rc;
 
        spin_lock_irq(&de->lock);
 
 static int de_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
        int rc;
 
        spin_lock_irq(&de->lock);
 
 static u32 de_get_msglevel(struct net_device *dev)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
 
        return de->msg_enable;
 }
 
 static void de_set_msglevel(struct net_device *dev, u32 msglvl)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
 
        de->msg_enable = msglvl;
 }
 static int de_get_eeprom(struct net_device *dev,
                         struct ethtool_eeprom *eeprom, u8 *data)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
 
        if (!de->ee_data)
                return -EOPNOTSUPP;
 
 static int de_nway_reset(struct net_device *dev)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
        u32 status;
 
        if (de->media_type != DE_MEDIA_TP_AUTO)
 static void de_get_regs(struct net_device *dev, struct ethtool_regs *regs,
                        void *data)
 {
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
 
        regs->version = (DE_REGS_VER << 2) | de->de21040;
 
        dev->tx_timeout = de_tx_timeout;
        dev->watchdog_timeo = TX_TIMEOUT;
 
-       de = dev->priv;
+       de = netdev_priv(dev);
        de->de21040 = ent->driver_data == 0 ? 1 : 0;
        de->pdev = pdev;
        de->dev = dev;
 static void __devexit de_remove_one (struct pci_dev *pdev)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
 
        BUG_ON(!dev);
        unregister_netdev(dev);
 static int de_suspend (struct pci_dev *pdev, pm_message_t state)
 {
        struct net_device *dev = pci_get_drvdata (pdev);
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
 
        rtnl_lock();
        if (netif_running (dev)) {
 static int de_resume (struct pci_dev *pdev)
 {
        struct net_device *dev = pci_get_drvdata (pdev);
-       struct de_private *de = dev->priv;
+       struct de_private *de = netdev_priv(dev);
        int retval = 0;
 
        rtnl_lock();
 
 {
        int i;
        unsigned retval = 0;
-       struct tulip_private *tp = dev->priv;
+       struct tulip_private *tp = netdev_priv(dev);
        void __iomem *ee_addr = tp->base_addr + CSR9;
        int read_cmd = location | (EE_READ_CMD << addr_len);
 
 
 
 static void uli526x_set_filter_mode(struct net_device * dev)
 {
-       struct uli526x_board_info *db = dev->priv;
+       struct uli526x_board_info *db = netdev_priv(dev);
        unsigned long flags;
 
        ULI526X_DBUG(0, "uli526x_set_filter_mode()", 0);
 
 typhoon_interrupt(int irq, void *dev_instance)
 {
        struct net_device *dev = dev_instance;
-       struct typhoon *tp = dev->priv;
+       struct typhoon *tp = netdev_priv(dev);
        void __iomem *ioaddr = tp->ioaddr;
        u32 intr_status;
 
 
 static int mcs7830_mdio_read(struct net_device *netdev, int phy_id,
                             int location)
 {
-       struct usbnet *dev = netdev->priv;
+       struct usbnet *dev = netdev_priv(netdev);
        return mcs7830_read_phy(dev, location);
 }
 
 static void mcs7830_mdio_write(struct net_device *netdev, int phy_id,
                                int location, int val)
 {
-       struct usbnet *dev = netdev->priv;
+       struct usbnet *dev = netdev_priv(netdev);
        mcs7830_write_phy(dev, location, val);
 }
 
 
                unsigned int i;
 
                for (i = 0; i < skb_shinfo(skb)->nr_frags; i++)
-                       give_a_page(dev->priv, skb_shinfo(skb)->frags[i].page);
+                       give_a_page(netdev_priv(dev),
+                                   skb_shinfo(skb)->frags[i].page);
                skb->data_len = 0;
                skb_shinfo(skb)->nr_frags = 0;
        }
 
        unsigned int            hlen;
        char                    *dest;
 
-       dlp = dev->priv;
+       dlp = netdev_priv(dev);
 
        hdr.control = FRAD_I_UI;
        switch(type)
        struct frhdr            *hdr;
        int                                     process, header;
 
-       dlp = dev->priv;
+       dlp = netdev_priv(dev);
        if (!pskb_may_pull(skb, sizeof(*hdr))) {
                printk(KERN_NOTICE "%s: invalid data no header\n",
                       dev->name);
        if (!skb || !dev)
                return(0);
 
-       dlp = dev->priv;
+       dlp = netdev_priv(dev);
 
        netif_stop_queue(dev);
        
        struct frad_local       *flp;
        int                     err;
 
-       dlp = dev->priv;
+       dlp = netdev_priv(dev);
 
-       flp = dlp->slave->priv;
+       flp = netdev_priv(dlp->slave);
 
        if (!get)
        {
        if (!capable(CAP_NET_ADMIN))
                return(-EPERM);
 
-       dlp = dev->priv;
+       dlp = netdev_priv(dev);
 
        switch(cmd)
        {
 {
        struct dlci_local *dlp;
 
-       dlp = dev->priv;
+       dlp = netdev_priv(dev);
 
        return((*dlp->slave->change_mtu)(dlp->slave, new_mtu));
 }
        struct frad_local       *flp;
        int                     err;
 
-       dlp = dev->priv;
+       dlp = netdev_priv(dev);
 
        if (!*(short *)(dev->dev_addr))
                return(-EINVAL);
        if (!netif_running(dlp->slave))
                return(-ENOTCONN);
 
-       flp = dlp->slave->priv;
+       flp = netdev_priv(dlp->slave);
        err = (*flp->activate)(dlp->slave, dev);
        if (err)
                return(err);
 
        netif_stop_queue(dev);
 
-       dlp = dev->priv;
+       dlp = netdev_priv(dev);
 
-       flp = dlp->slave->priv;
+       flp = netdev_priv(dlp->slave);
        err = (*flp->deactivate)(dlp->slave, dev);
 
        return 0;
 {
        struct dlci_local *dlp;
 
-       dlp = dev->priv;
+       dlp = netdev_priv(dev);
 
        return(&dlp->stats);
 }
        if (!slave)
                return -ENODEV;
 
-       if (slave->type != ARPHRD_FRAD || slave->priv == NULL)
+       if (slave->type != ARPHRD_FRAD || netdev_priv(slave) == NULL)
                goto err1;
 
        /* create device name */
 
        *(short *)(master->dev_addr) = dlci->dlci;
 
-       dlp = (struct dlci_local *) master->priv;
+       dlp = netdev_priv(master);
        dlp->slave = slave;
        dlp->master = master;
 
-       flp = slave->priv;
+       flp = netdev_priv(slave);
        err = (*flp->assoc)(slave, master);
        if (err < 0)
                goto err2;
                return(-EBUSY);
        }
 
-       dlp = master->priv;
+       dlp = netdev_priv(master);
        slave = dlp->slave;
-       flp = slave->priv;
+       flp = netdev_priv(slave);
 
        rtnl_lock();
        err = (*flp->deassoc)(slave, master);
 
 static void dlci_setup(struct net_device *dev)
 {
-       struct dlci_local *dlp = dev->priv;
+       struct dlci_local *dlp = netdev_priv(dev);
 
        dev->flags              = 0;
        dev->open               = dlci_open;
 
 {
        struct frad_local *flp;
 
-       flp = dev->priv;
+       flp = netdev_priv(dev);
        switch(flp->type)
        {
                case SDLA_S502A:
 {
        struct frad_local *flp;
 
-       flp = dev->priv;
+       flp = netdev_priv(dev);
        switch(flp->type)
        {
                case SDLA_S502A:
        int                      ret, waiting, len;
        long                     window;
 
-       flp = dev->priv;
+       flp = netdev_priv(dev);
        window = flp->type == SDLA_S508 ? SDLA_508_CMD_BUF : SDLA_502_CMD_BUF;
        cmd_buf = (struct sdla_cmd *)(dev->mem_start + (window & SDLA_ADDR_MASK));
        ret = 0;
        struct frad_local *flp;
        int i;
 
-       flp = slave->priv;
+       flp = netdev_priv(slave);
 
        for(i=0;i<CONFIG_DLCI_MAX;i++)
                if (flp->master[i] == master)
        struct frad_local *flp;
        int               i;
 
-       flp = slave->priv;
+       flp = netdev_priv(slave);
 
        for(i=0;i<CONFIG_DLCI_MAX;i++)
                if (flp->master[i] == master)
        if (master->type != ARPHRD_DLCI)
                return(-EINVAL);
 
-       flp = slave->priv;
+       flp = netdev_priv(slave);
 
        for(i=0;i<CONFIG_DLCI_MAX;i++)
        {
        struct frad_local *flp;
        int               i;
 
-       flp = slave->priv;
+       flp = netdev_priv(slave);
 
        for(i=0;i<CONFIG_DLCI_MAX;i++)
                if (flp->master[i] == master)
        int               i;
        short             len, ret;
 
-       flp = slave->priv;
+       flp = netdev_priv(slave);
 
        for(i=0;i<CONFIG_DLCI_MAX;i++)
                if (flp->master[i] == master)
        if (i == CONFIG_DLCI_MAX)
                return(-ENODEV);
 
-       dlp = master->priv;
+       dlp = netdev_priv(master);
 
        ret = SDLA_RET_OK;
        len = sizeof(struct dlci_conf);
        unsigned long     flags;
        struct buf_entry  *pbuf;
 
-       flp = dev->priv;
+       flp = netdev_priv(dev);
        ret = 0;
        accept = 1;
 
        int               i=0, received, success, addr, buf_base, buf_top;
        short             dlci, len, len2, split;
 
-       flp = dev->priv;
+       flp = netdev_priv(dev);
        success = 1;
        received = addr = buf_top = buf_base = 0;
        len = dlci = 0;
        if (success)
        {
                flp->stats.rx_packets++;
-               dlp = master->priv;
+               dlp = netdev_priv(master);
                (*dlp->receive)(skb, master);
        }
 
        struct frad_local *flp;
 
        dev = (struct net_device *) device;
-       flp = dev->priv;
+       flp = netdev_priv(dev);
 
        if (sdla_byte(dev, SDLA_502_RCV_BUF))
                sdla_receive(dev);
        int               len, i;
        short             dlcis[CONFIG_DLCI_MAX];
 
-       flp = dev->priv;
+       flp = netdev_priv(dev);
 
        len = 0;
        for(i=0;i<CONFIG_DLCI_MAX;i++)
        int               len, i;
        char              byte;
 
-       flp = dev->priv;
+       flp = netdev_priv(dev);
 
        if (!flp->initialized)
                return(-EPERM);
        for(i=0;i<CONFIG_DLCI_MAX;i++)
                if (flp->dlci[i])
                {
-                       dlp = flp->master[i]->priv;
+                       dlp = netdev_priv(flp->master[i]);
                        if (dlp->configured)
                                sdla_cmd(dev, SDLA_SET_DLCI_CONFIGURATION, abs(flp->dlci[i]), 0, &dlp->config, sizeof(struct dlci_conf), NULL, NULL);
                }
        if (dev->type == 0xFFFF)
                return(-EUNATCH);
 
-       flp = dev->priv;
+       flp = netdev_priv(dev);
 
        if (!get)
        {
        struct conf_data  data;
        int               i, len;
 
-       flp = dev->priv;
+       flp = netdev_priv(dev);
 
        len = 0;
        for(i=0;i<CONFIG_DLCI_MAX;i++)
        if(!capable(CAP_NET_ADMIN))
                return -EPERM;
                
-       flp = dev->priv;
+       flp = netdev_priv(dev);
 
        if (!flp->initialized)
                return(-EINVAL);
 {
        struct frad_local *flp;
 
-       flp = dev->priv;
+       flp = netdev_priv(dev);
 
        if (netif_running(dev))
                return(-EBUSY);
        unsigned base;
        int err = -EINVAL;
 
-       flp = dev->priv;
+       flp = netdev_priv(dev);
 
        if (flp->initialized)
                return(-EINVAL);
 static struct net_device_stats *sdla_stats(struct net_device *dev)
 {
        struct frad_local *flp;
-       flp = dev->priv;
+       flp = netdev_priv(dev);
 
        return(&flp->stats);
 }
 
 static void setup_sdla(struct net_device *dev)
 {
-       struct frad_local *flp = dev->priv;
+       struct frad_local *flp = netdev_priv(dev);
 
        netdev_boot_setup_check(dev);
 
 
 static void __exit exit_sdla(void)
 {
-       struct frad_local *flp = sdla->priv;
+       struct frad_local *flp = netdev_priv(sdla);
 
        unregister_netdev(sdla);
        if (flp->initialized) {
 
                if (dev == NULL)
                        break;
 
-               sl = dev->priv;
+               sl = netdev_priv(dev);
                /* Not in use ? */
                if (!test_and_set_bit(SLF_INUSE, &sl->flags))
                        return sl;
                        return NULL;
 
                /* Initialize channel control data */
-               sl = dev->priv;
+               sl = netdev_priv(dev);
                dev->base_addr    = i;
 
                /* register device so that it can be ifconfig'ed       */
 
 static int x25_asy_change_mtu(struct net_device *dev, int newmtu)
 {
-       struct x25_asy *sl = dev->priv;
+       struct x25_asy *sl = netdev_priv(dev);
        unsigned char *xbuff, *rbuff;
        int len = 2 * newmtu;
 
 
 static void x25_asy_timeout(struct net_device *dev)
 {
-       struct x25_asy *sl = dev->priv;
+       struct x25_asy *sl = netdev_priv(dev);
 
        spin_lock(&sl->lock);
        if (netif_queue_stopped(dev)) {
 
 static int x25_asy_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       struct x25_asy *sl = dev->priv;
+       struct x25_asy *sl = netdev_priv(dev);
        int err;
 
        if (!netif_running(sl->dev)) {
 
 static void x25_asy_data_transmit(struct net_device *dev, struct sk_buff *skb)
 {
-       struct x25_asy *sl = dev->priv;
+       struct x25_asy *sl = netdev_priv(dev);
 
        spin_lock(&sl->lock);
        if (netif_queue_stopped(sl->dev) || sl->tty == NULL) {
 
 static void x25_asy_connected(struct net_device *dev, int reason)
 {
-       struct x25_asy *sl = dev->priv;
+       struct x25_asy *sl = netdev_priv(dev);
        struct sk_buff *skb;
        unsigned char *ptr;
 
 
 static void x25_asy_disconnected(struct net_device *dev, int reason)
 {
-       struct x25_asy *sl = dev->priv;
+       struct x25_asy *sl = netdev_priv(dev);
        struct sk_buff *skb;
        unsigned char *ptr;
 
 /* Open the low-level part of the X.25 channel. Easy! */
 static int x25_asy_open(struct net_device *dev)
 {
-       struct x25_asy *sl = dev->priv;
+       struct x25_asy *sl = netdev_priv(dev);
        unsigned long len;
        int err;
 
 /* Close the low-level part of the X.25 channel. Easy! */
 static int x25_asy_close(struct net_device *dev)
 {
-       struct x25_asy *sl = dev->priv;
+       struct x25_asy *sl = netdev_priv(dev);
        int err;
 
        spin_lock(&sl->lock);
 
 static struct net_device_stats *x25_asy_get_stats(struct net_device *dev)
 {
-       struct x25_asy *sl = dev->priv;
+       struct x25_asy *sl = netdev_priv(dev);
        return &sl->stats;
 }
 
 
 static int x25_asy_open_dev(struct net_device *dev)
 {
-       struct x25_asy *sl = dev->priv;
+       struct x25_asy *sl = netdev_priv(dev);
        if (sl->tty == NULL)
                return -ENODEV;
        return 0;
 /* Initialise the X.25 driver.  Called by the device init code */
 static void x25_asy_setup(struct net_device *dev)
 {
-       struct x25_asy *sl = dev->priv;
+       struct x25_asy *sl = netdev_priv(dev);
 
        sl->magic  = X25_ASY_MAGIC;
        sl->dev    = dev;
        for (i = 0; i < x25_asy_maxdev; i++) {
                dev = x25_asy_devs[i];
                if (dev) {
-                       struct x25_asy *sl = dev->priv;
+                       struct x25_asy *sl = netdev_priv(dev);
 
                        spin_lock_bh(&sl->lock);
                        if (sl->tty)
 
 static void lbs_ethtool_get_drvinfo(struct net_device *dev,
                                         struct ethtool_drvinfo *info)
 {
-       struct lbs_private *priv = (struct lbs_private *) dev->priv;
+       struct lbs_private *priv = netdev_priv(dev);
 
        snprintf(info->fw_version, 32, "%u.%u.%u.p%u",
                priv->fwrelease >> 24 & 0xff,
 static int lbs_ethtool_get_eeprom(struct net_device *dev,
                                   struct ethtool_eeprom *eeprom, u8 * bytes)
 {
-       struct lbs_private *priv = (struct lbs_private *) dev->priv;
+       struct lbs_private *priv = netdev_priv(dev);
        struct cmd_ds_802_11_eeprom_access cmd;
        int ret;
 
 static void lbs_ethtool_get_stats(struct net_device *dev,
                                  struct ethtool_stats *stats, uint64_t *data)
 {
-       struct lbs_private *priv = dev->priv;
+       struct lbs_private *priv = netdev_priv(dev);
        struct cmd_ds_mesh_access mesh_access;
        int ret;
 
 
 static int lbs_ethtool_get_sset_count(struct net_device *dev, int sset)
 {
-       struct lbs_private *priv = dev->priv;
+       struct lbs_private *priv = netdev_priv(dev);
 
        if (sset == ETH_SS_STATS && dev == priv->mesh_dev)
                return MESH_STATS_NUM;
 static void lbs_ethtool_get_wol(struct net_device *dev,
                                struct ethtool_wolinfo *wol)
 {
-       struct lbs_private *priv = dev->priv;
+       struct lbs_private *priv = netdev_priv(dev);
 
        if (priv->wol_criteria == 0xffffffff) {
                /* Interface driver didn't configure wake */
 static int lbs_ethtool_set_wol(struct net_device *dev,
                               struct ethtool_wolinfo *wol)
 {
-       struct lbs_private *priv = dev->priv;
+       struct lbs_private *priv = netdev_priv(dev);
        uint32_t criteria = 0;
 
        if (priv->wol_criteria == 0xffffffff && wol->wolopts)
 
 static int mesh_get_default_parameters(struct device *dev,
                                       struct mrvl_mesh_defaults *defs)
 {
-       struct lbs_private *priv = to_net_dev(dev)->priv;
+       struct lbs_private *priv = netdev_priv(to_net_dev(dev));
        struct cmd_ds_mesh_config cmd;
        int ret;
 
 static ssize_t bootflag_set(struct device *dev, struct device_attribute *attr,
                            const char *buf, size_t count)
 {
-       struct lbs_private *priv = to_net_dev(dev)->priv;
+       struct lbs_private *priv = netdev_priv(to_net_dev(dev));
        struct cmd_ds_mesh_config cmd;
        uint32_t datum;
        int ret;
 static ssize_t boottime_set(struct device *dev,
                struct device_attribute *attr, const char *buf, size_t count)
 {
-       struct lbs_private *priv = to_net_dev(dev)->priv;
+       struct lbs_private *priv = netdev_priv(to_net_dev(dev));
        struct cmd_ds_mesh_config cmd;
        uint32_t datum;
        int ret;
 static ssize_t channel_set(struct device *dev, struct device_attribute *attr,
                           const char *buf, size_t count)
 {
-       struct lbs_private *priv = to_net_dev(dev)->priv;
+       struct lbs_private *priv = netdev_priv(to_net_dev(dev));
        struct cmd_ds_mesh_config cmd;
        uint32_t datum;
        int ret;
        struct cmd_ds_mesh_config cmd;
        struct mrvl_mesh_defaults defs;
        struct mrvl_meshie *ie;
-       struct lbs_private *priv = to_net_dev(dev)->priv;
+       struct lbs_private *priv = netdev_priv(to_net_dev(dev));
        int len;
        int ret;
 
        struct cmd_ds_mesh_config cmd;
        struct mrvl_mesh_defaults defs;
        struct mrvl_meshie *ie;
-       struct lbs_private *priv = to_net_dev(dev)->priv;
+       struct lbs_private *priv = netdev_priv(to_net_dev(dev));
        uint32_t datum;
        int ret;
 
        struct cmd_ds_mesh_config cmd;
        struct mrvl_mesh_defaults defs;
        struct mrvl_meshie *ie;
-       struct lbs_private *priv = to_net_dev(dev)->priv;
+       struct lbs_private *priv = netdev_priv(to_net_dev(dev));
        uint32_t datum;
        int ret;
 
        struct cmd_ds_mesh_config cmd;
        struct mrvl_mesh_defaults defs;
        struct mrvl_meshie *ie;
-       struct lbs_private *priv = to_net_dev(dev)->priv;
+       struct lbs_private *priv = netdev_priv(to_net_dev(dev));
        uint32_t datum;
        int ret;
 
 
                 union iwreq_data *wrqu, char *extra)
 {
        DECLARE_SSID_BUF(ssid);
-       struct lbs_private *priv = dev->priv;
+       struct lbs_private *priv = netdev_priv(dev);
        int ret = 0;
 
        lbs_deb_enter(LBS_DEB_WEXT);
                 struct iw_point *dwrq, char *extra)
 {
 #define SCAN_ITEM_SIZE 128
-       struct lbs_private *priv = dev->priv;
+       struct lbs_private *priv = netdev_priv(dev);
        int err = 0;
        char *ev = extra;
        char *stop = ev + dwrq->length;
 
 int lbs_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
        unsigned long flags;
-       struct lbs_private *priv = dev->priv;
+       struct lbs_private *priv = netdev_priv(dev);
        struct txpd *txpd;
        char *p802x_hdr;
        uint16_t pkt_len;