if (el_debug)
                printk(KERN_DEBUG "%s", version);
 
-       memset(dev->priv, 0, sizeof(struct net_local));
        lp = netdev_priv(dev);
+       memset(lp, 0, sizeof(struct net_local));
        spin_lock_init(&lp->lock);
 
        /*
 
 static inline void outb_control(unsigned char val, struct net_device *dev)
 {
        outb(val, dev->base_addr + PORT_CONTROL);
-       ((elp_device *)(dev->priv))->hcr_val = val;
+       ((elp_device *)(netdev_priv(dev)))->hcr_val = val;
 }
 
-#define HCR_VAL(x)   (((elp_device *)((x)->priv))->hcr_val)
+#define HCR_VAL(x)   (((elp_device *)(netdev_priv(x)))->hcr_val)
 
 static inline void outb_command(unsigned char val, unsigned int base_addr)
 {
 
 static inline void set_hsf(struct net_device *dev, int hsf)
 {
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        unsigned long flags;
 
        spin_lock_irqsave(&adapter->lock, flags);
 static inline void adapter_reset(struct net_device *dev)
 {
        unsigned long timeout;
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        unsigned char orig_hcr = adapter->hcr_val;
 
        outb_control(0, dev);
  */
 static inline void check_3c505_dma(struct net_device *dev)
 {
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        if (adapter->dmaing && time_after(jiffies, adapter->current_dma.start_time + 10)) {
                unsigned long flags, f;
                printk(KERN_ERR "%s: DMA %s timed out, %d bytes left\n", dev->name, adapter->current_dma.direction ? "download" : "upload", get_dma_residue(dev->dma));
 /* Check to see if the receiver needs restarting, and kick it if so */
 static inline void prime_rx(struct net_device *dev)
 {
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        while (adapter->rx_active < ELP_RX_PCBS && netif_running(dev)) {
                if (!start_receive(dev, &adapter->itx_pcb))
                        break;
 {
        int i;
        unsigned long timeout;
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        unsigned long flags;
 
        check_3c505_dma(dev);
        unsigned long timeout;
        unsigned long flags;
 
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
 
        set_hsf(dev, 0);
 
 static bool start_receive(struct net_device *dev, pcb_struct * tx_pcb)
 {
        bool status;
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
 
        if (elp_debug >= 3)
                printk(KERN_DEBUG "%s: restarting receiver\n", dev->name);
 static void receive_packet(struct net_device *dev, int len)
 {
        int rlen;
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        void *target;
        struct sk_buff *skb;
        unsigned long flags;
        int len;
        int dlen;
        int icount = 0;
-       struct net_device *dev;
-       elp_device *adapter;
+       struct net_device *dev = dev_id;
+       elp_device *adapter = netdev_priv(dev);
        unsigned long timeout;
 
-       dev = dev_id;
-       adapter = (elp_device *) dev->priv;
-
        spin_lock(&adapter->lock);
 
        do {
 
 static int elp_open(struct net_device *dev)
 {
-       elp_device *adapter;
+       elp_device *adapter = netdev_priv(dev);
        int retval;
 
-       adapter = dev->priv;
-
        if (elp_debug >= 3)
                printk(KERN_DEBUG "%s: request to open device\n", dev->name);
 
 
 static bool send_packet(struct net_device *dev, struct sk_buff *skb)
 {
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        unsigned long target;
        unsigned long flags;
 
 static int elp_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
        unsigned long flags;
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
 
        spin_lock_irqsave(&adapter->lock, flags);
        check_3c505_dma(dev);
 
 static struct net_device_stats *elp_get_stats(struct net_device *dev)
 {
-       elp_device *adapter = (elp_device *) dev->priv;
+       elp_device *adapter = netdev_priv(dev);
 
        if (elp_debug >= 3)
                printk(KERN_DEBUG "%s: request for stats\n", dev->name);
 
 static int elp_close(struct net_device *dev)
 {
-       elp_device *adapter;
-
-       adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
 
        if (elp_debug >= 3)
                printk(KERN_DEBUG "%s: request to close device\n", dev->name);
 
 static void elp_set_mc_list(struct net_device *dev)
 {
-       elp_device *adapter = (elp_device *) dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        struct dev_mc_list *dmi = dev->mc_list;
        int i;
        unsigned long flags;
 
 static int __init elplus_setup(struct net_device *dev)
 {
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        int i, tries, tries1, okay;
        unsigned long timeout;
        unsigned long cookie = 0;
 
 
 static int __init check586(struct net_device *dev, unsigned long where, unsigned size)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
        char *iscp_addrs[2];
        int i = 0;
 
 
 void alloc586(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        elmc_id_reset586();
        DELAY(2);
        int i = 0;
        unsigned int size = 0;
        int retval;
-       struct priv *pr = dev->priv;
+       struct priv *pr = netdev_priv(dev);
 
        if (MCA_bus == 0) {
                return -ENODEV;
 
 static void cleanup_card(struct net_device *dev)
 {
-       mca_set_adapter_procfn(((struct priv *) (dev->priv))->slot, NULL, NULL);
+       mca_set_adapter_procfn(((struct priv *)netdev_priv(dev))->slot,
+                               NULL, NULL);
        release_region(dev->base_addr, ELMC_IO_EXTENT);
 }
 
        void *ptr;
        unsigned long s;
        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);
        p->rfd_first = rfd;
        }
        /* reading ELMC_CTRL also clears the INT bit. */
 
-       p = (struct priv *) dev->priv;
+       p = netdev_priv(dev);
 
        while ((stat = p->scb->status & STAT_MASK))
        {
        unsigned short totlen;
        struct sk_buff *skb;
        struct rbd_struct *rbd;
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        for (; (status = p->rfd_top->status) & STAT_COMPL;) {
                rbd = (struct rbd_struct *) make32(p->rfd_top->rbd_offset);
 
 static void elmc_rnr_int(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        dev->stats.rx_errors++;
 
 static void elmc_xmt_int(struct net_device *dev)
 {
        int status;
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        status = p->xmit_cmds[p->xmit_last]->cmd_status;
        if (!(status & STAT_COMPL)) {
 
 static void startrecv586(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        p->scb->rfa_offset = make16(p->rfd_first);
        p->scb->cmd = RUC_START;
 
 static void elmc_timeout(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
        /* COMMAND-UNIT active? */
        if (p->scb->status & CU_ACTIVE) {
 #ifdef DEBUG
 #ifndef NO_NOPCOMMANDS
        int next_nop;
 #endif
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        netif_stop_queue(dev);
 
 
 static struct net_device_stats *elmc_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 = p->scb->crc_errs; /* get error-statistic from the ni82586 */
 
 {
        struct net_device *dev = pci_get_drvdata(pdev);
 
-       if (dev && dev->priv) {
+       if (dev && netdev_priv(dev)) {
                if (netif_running(dev)) {
                        netif_device_detach(dev);
                        vortex_down(dev, 1);
 #endif
 
        if (compaq_net_device) {
-               vp = compaq_net_device->priv;
+               vp = netdev_priv(compaq_net_device);
                ioaddr = ioport_map(compaq_net_device->base_addr,
                                    VORTEX_TOTAL_SIZE);
 
 
 
        SET_NETDEV_DEV(dev, &pdev->dev);
 
-       ap = dev->priv;
+       ap = netdev_priv(dev);
        ap->pdev = pdev;
        ap->name = pci_name(pdev);
 
 
  */
 static struct net_device_stats *ipddp_get_stats(struct net_device *dev)
 {
-        return dev->priv;
+       return netdev_priv(dev);
 }
 
 /*
 
         skb->protocol = htons(ETH_P_ATALK);     /* Protocol has changed */
 
-       ((struct net_device_stats *) dev->priv)->tx_packets++;
-        ((struct net_device_stats *) dev->priv)->tx_bytes+=skb->len;
+       ((struct net_device_stats *) netdev_priv(dev))->tx_packets++;
+       ((struct net_device_stats *) netdev_priv(dev))->tx_bytes += skb->len;
 
         if(aarp_send_ddp(rt->dev, skb, &rt->at, NULL) < 0)
                 dev_kfree_skb(skb);
 
        int dnode, snode, llaptype, len; 
        int sklen;
        struct sk_buff *skb;
-       struct net_device_stats *stats = &((struct ltpc_private *)dev->priv)->stats;
+       struct ltpc_private *ltpc_priv = netdev_priv(dev);
+       struct net_device_stats *stats = <pc_priv->stats;
        struct lt_rcvlap *ltc = (struct lt_rcvlap *) ltdmacbuf;
 
        if (ltc->command != LT_RCVLAP) {
 {
        struct sockaddr_at *sa = (struct sockaddr_at *) &ifr->ifr_addr;
        /* we'll keep the localtalk node address in dev->pa_addr */
-       struct atalk_addr *aa = &((struct ltpc_private *)dev->priv)->my_addr;
+       struct ltpc_private *ltpc_priv = netdev_priv(dev);
+       struct atalk_addr *aa = <pc_priv->my_addr;
        struct lt_init c;
        int ltflags;
 
         * and skb->len is the length of the ddp data + ddp header
         */
 
-       struct net_device_stats *stats = &((struct ltpc_private *)dev->priv)->stats;
+       struct ltpc_private *ltpc_priv = netdev_priv(dev);
+       struct net_device_stats *stats = <pc_priv->stats;
 
        int i;
        struct lt_sendlap cbuf;
 
 static struct net_device_stats *ltpc_get_stats(struct net_device *dev)
 {
-       struct net_device_stats *stats = &((struct ltpc_private *) dev->priv)->stats;
+       struct ltpc_private *ltpc_priv = netdev_priv(dev);
+       struct net_device_stats *stats = <pc_priv->stats;
        return stats;
 }
 
 
 static void rx(struct net_device *dev, int bufnum,
               struct archdr *pkthdr, int length)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct sk_buff *skb;
        struct archdr *pkt = pkthdr;
        int ofs;
 static int prepare_tx(struct net_device *dev, struct archdr *pkt, int length,
                      int bufnum)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct arc_hardware *hard = &pkt->hard;
        int ofs;
 
 
 
        /* initialize the rest of the device structure. */
 
-       lp = dev->priv;
+       lp = netdev_priv(dev);
        lp->card_name = "RIM I";
        lp->hw.command = arcrimi_command;
        lp->hw.status = arcrimi_status;
  */
 static int arcrimi_reset(struct net_device *dev, int really_reset)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *ioaddr = lp->mem_start + 0x800;
 
        BUGMSG(D_INIT, "Resetting %s (status=%02Xh)\n", dev->name, ASTATUS());
 
 static void arcrimi_setmask(struct net_device *dev, int mask)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *ioaddr = lp->mem_start + 0x800;
 
        AINTMASK(mask);
 
 static int arcrimi_status(struct net_device *dev)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *ioaddr = lp->mem_start + 0x800;
 
        return ASTATUS();
 
 static void arcrimi_command(struct net_device *dev, int cmd)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *ioaddr = lp->mem_start + 0x800;
 
        ACOMMAND(cmd);
 static void arcrimi_copy_to_card(struct net_device *dev, int bufnum, int offset,
                                 void *buf, int count)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *memaddr = lp->mem_start + 0x800 + bufnum * 512 + offset;
        TIME("memcpy_toio", count, memcpy_toio(memaddr, buf, count));
 }
 static void arcrimi_copy_from_card(struct net_device *dev, int bufnum, int offset,
                                   void *buf, int count)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *memaddr = lp->mem_start + 0x800 + bufnum * 512 + offset;
        TIME("memcpy_fromio", count, memcpy_fromio(buf, memaddr, count));
 }
 static void __exit arc_rimi_exit(void)
 {
        struct net_device *dev = my_dev;
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
 
        unregister_netdev(dev);
        iounmap(lp->mem_start);
 
 static void arcnet_dump_packet(struct net_device *dev, int bufnum,
                               char *desc, int take_arcnet_lock)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int i, length;
        unsigned long flags = 0;
        static uint8_t buf[512];
  */
 static void release_arcbuf(struct net_device *dev, int bufnum)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int i;
 
        lp->buf_queue[lp->first_free_buf++] = bufnum;
  */
 static int get_arcbuf(struct net_device *dev)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int buf = -1, i;
 
        if (!atomic_dec_and_test(&lp->buf_lock)) {
        dev = alloc_netdev(sizeof(struct arcnet_local),
                           name && *name ? name : "arc%d", arcdev_setup);
        if(dev) {
-               struct arcnet_local *lp = (struct arcnet_local *) dev->priv;
+               struct arcnet_local *lp = netdev_priv(dev);
                spin_lock_init(&lp->lock);
        }
 
  */
 static int arcnet_open(struct net_device *dev)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int count, newmtu, error;
 
        BUGMSG(D_INIT,"opened.");
 /* The inverse routine to arcnet_open - shuts down the card. */
 static int arcnet_close(struct net_device *dev)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
 
        netif_stop_queue(dev);
 
 static int arcnet_rebuild_header(struct sk_buff *skb)
 {
        struct net_device *dev = skb->dev;
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int status = 0;         /* default is failure */
        unsigned short type;
        uint8_t daddr=0;
 /* Called by the kernel in order to transmit a packet. */
 static int arcnet_send_packet(struct sk_buff *skb, struct net_device *dev)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct archdr *pkt;
        struct arc_rfc1201 *soft;
        struct ArcProto *proto;
  */
 static int go_tx(struct net_device *dev)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
 
        BUGMSG(D_DURING, "go_tx: status=%Xh, intmask=%Xh, next_tx=%d, cur_tx=%d\n",
               ASTATUS(), lp->intmask, lp->next_tx, lp->cur_tx);
 static void arcnet_timeout(struct net_device *dev)
 {
        unsigned long flags;
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int status = ASTATUS();
        char *msg;
 
        BUGMSG(D_DURING, "\n");
 
        BUGMSG(D_DURING, "in arcnet_interrupt\n");
-       
-       lp = dev->priv;
+
+       lp = netdev_priv(dev);
        BUG_ON(!lp);
                
        spin_lock(&lp->lock);
  */
 static void arcnet_rx(struct net_device *dev, int bufnum)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct archdr pkt;
        struct arc_rfc1201 *soft;
        int length, ofs;
  */
 static struct net_device_stats *arcnet_get_stats(struct net_device *dev)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        return &lp->stats;
 }
 
 static int null_build_header(struct sk_buff *skb, struct net_device *dev,
                             unsigned short type, uint8_t daddr)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
 
        BUGMSG(D_PROTO,
               "tx: can't build header for encap %02Xh; load a protocol driver.\n",
 static int null_prepare_tx(struct net_device *dev, struct archdr *pkt,
                           int length, int bufnum)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct arc_hardware newpkt;
 
        BUGMSG(D_PROTO, "tx: no encap for this host; load a protocol driver.\n");
 
 static void rx(struct net_device *dev, int bufnum,
               struct archdr *pkthdr, int length)
 {
-       struct arcnet_local *lp = (struct arcnet_local *) dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct sk_buff *skb;
        struct archdr *pkt = pkthdr;
        char *pktbuf, *pkthdrbuf;
 static int prepare_tx(struct net_device *dev, struct archdr *pkt, int length,
                      int bufnum)
 {
-       struct arcnet_local *lp = (struct arcnet_local *) dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct arc_hardware *hard = &pkt->hard;
        int ofs;
 
 
 static int ack_tx(struct net_device *dev, int acked)
 {
-  struct arcnet_local *lp = (struct arcnet_local *) dev->priv;
+  struct arcnet_local *lp = netdev_priv(dev);
   struct sk_buff *ackskb;
   struct archdr *ackpkt;
   int length=sizeof(struct arc_cap);
 
 {
        int ioaddr;
        unsigned long airqmask;
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int err;
 
        BUGLVL(D_NORMAL) printk(VERSION);
        if (node && node != 0xff)
                dev->dev_addr[0] = node;
 
-       lp = dev->priv;
+       lp = netdev_priv(dev);
        lp->backplane = backplane;
        lp->clockp = clockp & 7;
        lp->clockm = clockm & 3;
 
        dev = alloc_arcdev(device);
        if (!dev)
                return -ENOMEM;
-       lp = dev->priv;
+       lp = netdev_priv(dev);
 
        pci_set_drvdata(pdev, dev);
 
 
 int com20020_check(struct net_device *dev)
 {
        int ioaddr = dev->base_addr, status;
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
 
        ARCRESET0;
        mdelay(RESETtime);
 
        /* Initialize the rest of the device structure. */
 
-       lp = dev->priv;
+       lp = netdev_priv(dev);
 
        lp->hw.owner = THIS_MODULE;
        lp->hw.command = com20020_command;
  */
 static int com20020_reset(struct net_device *dev, int really_reset)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        u_int ioaddr = dev->base_addr;
        u_char inbyte;
 
 
 static void com20020_close(struct net_device *dev)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int ioaddr = dev->base_addr;
 
        /* disable transmitter */
  */
 static void com20020_set_mc_list(struct net_device *dev)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int ioaddr = dev->base_addr;
 
        if ((dev->flags & IFF_PROMISC) && (dev->flags & IFF_UP)) {      /* Enable promiscuous mode */
 
                return -EBUSY;
        }
 
-       lp = dev->priv;
+       lp = netdev_priv(dev);
        lp->card_name = "COM90xx I/O";
        lp->hw.command = com90io_command;
        lp->hw.status = com90io_status;
  */
 static int com90io_reset(struct net_device *dev, int really_reset)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        short ioaddr = dev->base_addr;
 
        BUGMSG(D_INIT, "Resetting %s (status=%02Xh)\n", dev->name, ASTATUS());
 
                release_mem_region(shmem, MIRROR_SIZE);
                return -ENOMEM;
        }
-       lp = dev->priv;
+       lp = netdev_priv(dev);
        /* find the real shared memory start/end points, including mirrors */
 
        /* guess the actual size of one "memory mirror" - the number of
  */
 int com90xx_reset(struct net_device *dev, int really_reset)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        short ioaddr = dev->base_addr;
 
        BUGMSG(D_INIT, "Resetting (status=%02Xh)\n", ASTATUS());
 static void com90xx_copy_to_card(struct net_device *dev, int bufnum, int offset,
                                 void *buf, int count)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *memaddr = lp->mem_start + bufnum * 512 + offset;
        TIME("memcpy_toio", count, memcpy_toio(memaddr, buf, count));
 }
 static void com90xx_copy_from_card(struct net_device *dev, int bufnum, int offset,
                                   void *buf, int count)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *memaddr = lp->mem_start + bufnum * 512 + offset;
        TIME("memcpy_fromio", count, memcpy_fromio(buf, memaddr, count));
 }
 
        for (count = 0; count < numcards; count++) {
                dev = cards[count];
-               lp = dev->priv;
+               lp = netdev_priv(dev);
 
                unregister_netdev(dev);
                free_irq(dev->irq, dev);
 
  */
 static __be16 type_trans(struct sk_buff *skb, struct net_device *dev)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct archdr *pkt = (struct archdr *) skb->data;
        struct arc_rfc1051 *soft = &pkt->soft.rfc1051;
        int hdr_size = ARC_HDR_SIZE + RFC1051_HDR_SIZE;
 static void rx(struct net_device *dev, int bufnum,
               struct archdr *pkthdr, int length)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct sk_buff *skb;
        struct archdr *pkt = pkthdr;
        int ofs;
 static int build_header(struct sk_buff *skb, struct net_device *dev,
                        unsigned short type, uint8_t daddr)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int hdr_size = ARC_HDR_SIZE + RFC1051_HDR_SIZE;
        struct archdr *pkt = (struct archdr *) skb_push(skb, hdr_size);
        struct arc_rfc1051 *soft = &pkt->soft.rfc1051;
 static int prepare_tx(struct net_device *dev, struct archdr *pkt, int length,
                      int bufnum)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct arc_hardware *hard = &pkt->hard;
        int ofs;
 
 
 {
        struct archdr *pkt = (struct archdr *) skb->data;
        struct arc_rfc1201 *soft = &pkt->soft.rfc1201;
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int hdr_size = ARC_HDR_SIZE + RFC1201_HDR_SIZE;
 
        /* Pull off the arcnet header. */
 static void rx(struct net_device *dev, int bufnum,
               struct archdr *pkthdr, int length)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct sk_buff *skb;
        struct archdr *pkt = pkthdr;
        struct arc_rfc1201 *soft = &pkthdr->soft.rfc1201;
 static int build_header(struct sk_buff *skb, struct net_device *dev,
                        unsigned short type, uint8_t daddr)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int hdr_size = ARC_HDR_SIZE + RFC1201_HDR_SIZE;
        struct archdr *pkt = (struct archdr *) skb_push(skb, hdr_size);
        struct arc_rfc1201 *soft = &pkt->soft.rfc1201;
 static void load_pkt(struct net_device *dev, struct arc_hardware *hard,
                     struct arc_rfc1201 *soft, int softlen, int bufnum)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        int ofs;
 
        /* assume length <= XMTU: someone should have handled that by now. */
 static int prepare_tx(struct net_device *dev, struct archdr *pkt, int length,
                      int bufnum)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        const int maxsegsize = XMTU - RFC1201_HDR_SIZE;
        struct Outgoing *out;
 
 
 static int continue_tx(struct net_device *dev, int bufnum)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct Outgoing *out = &lp->outgoing;
        struct arc_hardware *hard = &out->pkt->hard;
        struct arc_rfc1201 *soft = &out->pkt->soft.rfc1201, *newsoft;
 
        return( 0 );
 
   probe_ok:
-       lp = (struct lance_private *)dev->priv;
+       lp = netdev_priv(dev);
        MEM = (struct lance_memory *)memaddr;
        IO = lp->iobase = (struct lance_ioreg *)ioaddr;
        dev->base_addr = (unsigned long)ioaddr; /* informational only */
 
 
 static int lance_open( struct net_device *dev )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        struct lance_ioreg       *IO = lp->iobase;
        int i;
 
 /* Initialize the LANCE Rx and Tx rings. */
 
 static void lance_init_ring( struct net_device *dev )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        int i;
        unsigned offset;
 
 
 static void lance_tx_timeout (struct net_device *dev)
 {
-       struct lance_private *lp = (struct lance_private *) dev->priv;
+       struct lance_private *lp = netdev_priv(dev);
        struct lance_ioreg       *IO = lp->iobase;
 
        AREG = CSR0;
 /* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */
 
 static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        struct lance_ioreg       *IO = lp->iobase;
        int entry, len;
        struct lance_tx_head *head;
                return IRQ_NONE;
        }
 
-       lp = (struct lance_private *)dev->priv;
+       lp = netdev_priv(dev);
        IO = lp->iobase;
        spin_lock (&lp->devlock);
 
 
 
 static int lance_rx( struct net_device *dev )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        int entry = lp->cur_rx & RX_RING_MOD_MASK;
        int i;
 
 
 
 static int lance_close( struct net_device *dev )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        struct lance_ioreg       *IO = lp->iobase;
 
        netif_stop_queue (dev);
  */
 
 static void set_multicast_list( struct net_device *dev )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        struct lance_ioreg       *IO = lp->iobase;
 
        if (netif_running(dev))
 /* This is needed for old RieblCards and possible for new RieblCards */
 
 static int lance_set_mac_address( struct net_device *dev, void *addr )
-
-{      struct lance_private *lp = (struct lance_private *)dev->priv;
+{
+       struct lance_private *lp = netdev_priv(dev);
        struct sockaddr *saddr = addr;
        int i;
 
 
 atl1e_io_error_detected(struct pci_dev *pdev, pci_channel_state_t state)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct atl1e_adapter *adapter = netdev->priv;
+       struct atl1e_adapter *adapter = netdev_priv(netdev);
 
        netif_device_detach(netdev);
 
 static pci_ers_result_t atl1e_io_slot_reset(struct pci_dev *pdev)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct atl1e_adapter *adapter = netdev->priv;
+       struct atl1e_adapter *adapter = netdev_priv(netdev);
 
        if (pci_enable_device(pdev)) {
                dev_err(&pdev->dev,
 static void atl1e_io_resume(struct pci_dev *pdev)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct atl1e_adapter *adapter = netdev->priv;
+       struct atl1e_adapter *adapter = netdev_priv(netdev);
 
        if (netif_running(netdev)) {
                if (atl1e_up(adapter)) {
 
        struct net_device *next_dev;
 
        while (root_atp_dev) {
-               next_dev = ((struct net_local *)root_atp_dev->priv)->next_module;
+               struct net_local *atp_local = netdev_priv(root_atp_dev);
+               next_dev = atp_local->next_module;
                unregister_netdev(root_atp_dev);
                /* No need to release_region(), since we never snarf it. */
                free_netdev(root_atp_dev);
 
  */
 static int au1000_mdio_read(struct net_device *dev, int phy_addr, int reg)
 {
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
        volatile u32 *const mii_control_reg = &aup->mac->mii_control;
        volatile u32 *const mii_data_reg = &aup->mac->mii_data;
        u32 timedout = 20;
 static void au1000_mdio_write(struct net_device *dev, int phy_addr,
                              int reg, u16 value)
 {
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
        volatile u32 *const mii_control_reg = &aup->mac->mii_control;
        volatile u32 *const mii_data_reg = &aup->mac->mii_data;
        u32 timedout = 20;
 
 static int mii_probe (struct net_device *dev)
 {
-       struct au1000_private *const aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *const aup = netdev_priv(dev);
        struct phy_device *phydev = NULL;
 
 #if defined(AU1XXX_PHY_STATIC_CONFIG)
 
 static void enable_rx_tx(struct net_device *dev)
 {
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
 
        if (au1000_debug > 4)
                printk(KERN_INFO "%s: enable_rx_tx\n", dev->name);
 
 static void hard_stop(struct net_device *dev)
 {
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
 
        if (au1000_debug > 4)
                printk(KERN_INFO "%s: hard stop\n", dev->name);
 static void enable_mac(struct net_device *dev, int force_reset)
 {
        unsigned long flags;
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
 
        spin_lock_irqsave(&aup->lock, flags);
 
 
 static void reset_mac_unlocked(struct net_device *dev)
 {
-       struct au1000_private *const aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *const aup = netdev_priv(dev);
        int i;
 
        hard_stop(dev);
 
 static void reset_mac(struct net_device *dev)
 {
-       struct au1000_private *const aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *const aup = netdev_priv(dev);
        unsigned long flags;
 
        if (au1000_debug > 4)
 
 static int au1000_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 {
-       struct au1000_private *aup = (struct au1000_private *)dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
 
        if (aup->phy_dev)
                return phy_ethtool_gset(aup->phy_dev, cmd);
 
 static int au1000_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 {
-       struct au1000_private *aup = (struct au1000_private *)dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
 
        if (!capable(CAP_NET_ADMIN))
                return -EPERM;
 static void
 au1000_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
 {
-       struct au1000_private *aup = (struct au1000_private *)dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
 
        strcpy(info->driver, DRV_NAME);
        strcpy(info->version, DRV_VERSION);
        printk("%s: Au1xx0 Ethernet found at 0x%x, irq %d\n",
                dev->name, base, irq);
 
-       aup = dev->priv;
+       aup = netdev_priv(dev);
 
        spin_lock_init(&aup->lock);
 
  */
 static int au1000_init(struct net_device *dev)
 {
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
        unsigned long flags;
        int i;
        u32 control;
 static void
 au1000_adjust_link(struct net_device *dev)
 {
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
        struct phy_device *phydev = aup->phy_dev;
        unsigned long flags;
 
 static int au1000_open(struct net_device *dev)
 {
        int retval;
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
 
        if (au1000_debug > 4)
                printk("%s: open: dev=%p\n", dev->name, dev);
 static int au1000_close(struct net_device *dev)
 {
        unsigned long flags;
-       struct au1000_private *const aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *const aup = netdev_priv(dev);
 
        if (au1000_debug > 4)
                printk("%s: close: dev=%p\n", dev->name, dev);
        for (i = 0; i < num_ifs; i++) {
                dev = iflist[i].dev;
                if (dev) {
-                       aup = (struct au1000_private *) dev->priv;
+                       aup = netdev_priv(dev);
                        unregister_netdev(dev);
                        mdiobus_unregister(aup->mii_bus);
                        mdiobus_free(aup->mii_bus);
 
 static void update_tx_stats(struct net_device *dev, u32 status)
 {
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
        struct net_device_stats *ps = &dev->stats;
 
        if (status & TX_FRAME_ABORTED) {
  */
 static void au1000_tx_ack(struct net_device *dev)
 {
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
        volatile tx_dma_t *ptxd;
 
        ptxd = aup->tx_dma_ring[aup->tx_tail];
  */
 static int au1000_tx(struct sk_buff *skb, struct net_device *dev)
 {
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
        struct net_device_stats *ps = &dev->stats;
        volatile tx_dma_t *ptxd;
        u32 buff_stat;
 
 static inline void update_rx_stats(struct net_device *dev, u32 status)
 {
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
        struct net_device_stats *ps = &dev->stats;
 
        ps->rx_packets++;
  */
 static int au1000_rx(struct net_device *dev)
 {
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
        struct sk_buff *skb;
        volatile rx_dma_t *prxd;
        u32 buff_stat, status;
 
 static void set_rx_mode(struct net_device *dev)
 {
-       struct au1000_private *aup = (struct au1000_private *) dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
 
        if (au1000_debug > 4)
                printk("%s: set_rx_mode: flags=%x\n", dev->name, dev->flags);
 
 static int au1000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
 {
-       struct au1000_private *aup = (struct au1000_private *)dev->priv;
+       struct au1000_private *aup = netdev_priv(dev);
 
        if (!netif_running(dev)) return -EINVAL;
 
 
 int bond_3ad_xmit_xor(struct sk_buff *skb, struct net_device *dev)
 {
        struct slave *slave, *start_at;
-       struct bonding *bond = dev->priv;
+       struct bonding *bond = netdev_priv(dev);
        int slave_agg_no;
        int slaves_in_agg;
        int agg_id;
 
 int bond_3ad_lacpdu_recv(struct sk_buff *skb, struct net_device *dev, struct packet_type* ptype, struct net_device *orig_dev)
 {
-       struct bonding *bond = dev->priv;
+       struct bonding *bond = netdev_priv(dev);
        struct slave *slave = NULL;
        int ret = NET_RX_DROP;
 
                goto out;
 
        read_lock(&bond->lock);
-       slave = bond_get_slave_by_dev((struct bonding *)dev->priv, orig_dev);
+       slave = bond_get_slave_by_dev((struct bonding *)netdev_priv(dev),
+                                       orig_dev);
        if (!slave)
                goto out_unlock;
 
 
                /* update rx hash table for this ARP */
                printk("rar: update orig %s bond_dev %s\n", orig_dev->name,
                       bond_dev->name);
-               bond = bond_dev->priv;
+               bond = netdev_priv(bond_dev);
                rlb_update_entry_from_arp(bond, arp);
                dprintk("Server received an ARP Reply from client\n");
        }
 
 int bond_alb_xmit(struct sk_buff *skb, struct net_device *bond_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct ethhdr *eth_data;
        struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond));
        struct slave *tx_slave = NULL;
  */
 int bond_alb_set_mac_address(struct net_device *bond_dev, void *addr)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct sockaddr *sa = addr;
        struct slave *slave, *swap_slave;
        int res;
 
  */
 static void bond_vlan_rx_register(struct net_device *bond_dev, struct vlan_group *grp)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct slave *slave;
        int i;
 
  */
 static void bond_vlan_rx_add_vid(struct net_device *bond_dev, uint16_t vid)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct slave *slave;
        int i, res;
 
  */
 static void bond_vlan_rx_kill_vid(struct net_device *bond_dev, uint16_t vid)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct slave *slave;
        struct net_device *vlan_dev;
        int i, res;
  */
 static void bond_mc_list_flush(struct net_device *bond_dev, struct net_device *slave_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct dev_mc_list *dmi;
 
        for (dmi = bond_dev->mc_list; dmi; dmi = dmi->next) {
 static void bond_setup_by_slave(struct net_device *bond_dev,
                                struct net_device *slave_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
 
        bond_dev->neigh_setup           = slave_dev->neigh_setup;
        bond_dev->header_ops            = slave_dev->header_ops;
 /* enslave device <slave> to bond device <master> */
 int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct slave *new_slave = NULL;
        struct dev_mc_list *dmi;
        struct sockaddr addr;
  */
 int bond_release(struct net_device *bond_dev, struct net_device *slave_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct slave *slave, *oldcurrent;
        struct sockaddr addr;
        int mac_addr_differ;
 */
 int  bond_release_and_destroy(struct net_device *bond_dev, struct net_device *slave_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        int ret;
 
        ret = bond_release(bond_dev, slave_dev);
  */
 static int bond_release_all(struct net_device *bond_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct slave *slave;
        struct net_device *slave_dev;
        struct sockaddr addr;
  */
 static int bond_ioctl_change_active(struct net_device *bond_dev, struct net_device *slave_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct slave *old_active = NULL;
        struct slave *new_active = NULL;
        int res = 0;
 
 static int bond_info_query(struct net_device *bond_dev, struct ifbond *info)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
 
        info->bond_mode = bond->params.mode;
        info->miimon = bond->params.miimon;
 
 static int bond_slave_info_query(struct net_device *bond_dev, struct ifslave *info)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct slave *slave;
        int i, found = 0;
 
        if (!(dev->priv_flags & IFF_BONDING) || !(dev->flags & IFF_MASTER))
                goto out;
 
-       bond = dev->priv;
+       bond = netdev_priv(dev);
        read_lock(&bond->lock);
 
        dprintk("bond_arp_rcv: bond %s skb->dev %s orig_dev %s\n",
 
 static int bond_master_netdev_event(unsigned long event, struct net_device *bond_dev)
 {
-       struct bonding *event_bond = bond_dev->priv;
+       struct bonding *event_bond = netdev_priv(bond_dev);
 
        switch (event) {
        case NETDEV_CHANGENAME:
 static int bond_slave_netdev_event(unsigned long event, struct net_device *slave_dev)
 {
        struct net_device *bond_dev = slave_dev->master;
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
 
        switch (event) {
        case NETDEV_UNREGISTER:
 
 static int bond_open(struct net_device *bond_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
 
        bond->kill_timers = 0;
 
 
 static int bond_close(struct net_device *bond_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
 
        if (bond->params.mode == BOND_MODE_8023AD) {
                /* Unregister the receive of LACPDUs */
 
 static struct net_device_stats *bond_get_stats(struct net_device *bond_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct net_device_stats *stats = &(bond->stats), *sstats;
        struct net_device_stats local_stats;
        struct slave *slave;
                }
 
                if (mii->reg_num == 1) {
-                       struct bonding *bond = bond_dev->priv;
+                       struct bonding *bond = netdev_priv(bond_dev);
                        mii->val_out = 0;
                        read_lock(&bond->lock);
                        read_lock(&bond->curr_slave_lock);
 
 static void bond_set_multicast_list(struct net_device *bond_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct dev_mc_list *dmi;
 
        /*
  */
 static int bond_change_mtu(struct net_device *bond_dev, int new_mtu)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct slave *slave, *stop_at;
        int res = 0;
        int i;
  */
 static int bond_set_mac_address(struct net_device *bond_dev, void *addr)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct sockaddr *sa = addr, tmp_sa;
        struct slave *slave, *stop_at;
        int res = 0;
 
 static int bond_xmit_roundrobin(struct sk_buff *skb, struct net_device *bond_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct slave *slave, *start_at;
        int i, slave_no, res = 1;
 
  */
 static int bond_xmit_activebackup(struct sk_buff *skb, struct net_device *bond_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        int res = 1;
 
        read_lock(&bond->lock);
  */
 static int bond_xmit_xor(struct sk_buff *skb, struct net_device *bond_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct slave *slave, *start_at;
        int slave_no;
        int i;
  */
 static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
        struct slave *slave, *start_at;
        struct net_device *tx_dev = NULL;
        int i;
  */
 static int bond_init(struct net_device *bond_dev, struct bond_params *params)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
 
        dprintk("Begin bond_init for %s\n", bond_dev->name);
 
  */
 static void bond_deinit(struct net_device *bond_dev)
 {
-       struct bonding *bond = bond_dev->priv;
+       struct bonding *bond = netdev_priv(bond_dev);
 
        list_del(&bond->bond_list);
 
 
        up_write(&bonding_rwsem);
        rtnl_unlock(); /* allows sysfs registration of net device */
-       res = bond_create_sysfs_entry(bond_dev->priv);
+       res = bond_create_sysfs_entry(netdev_priv(bond_dev));
        if (res < 0) {
                rtnl_lock();
                down_write(&bonding_rwsem);
 
 /* #define BONDING_DEBUG 1 */
 #include "bonding.h"
 #define to_dev(obj)    container_of(obj,struct device,kobj)
-#define to_bond(cd)    ((struct bonding *)(to_net_dev(cd)->priv))
+#define to_bond(cd)    ((struct bonding *)(netdev_priv(to_net_dev(cd))))
 
 /*---------------------------- Declarations -------------------------------*/
 
 
                return NULL;
        }
 
-       return (struct bonding *)slave->dev->master->priv;
+       return (struct bonding *)netdev_priv(slave->dev->master);
 }
 
 #define BOND_FOM_NONE                  0
 
 static inline void bond_set_slave_inactive_flags(struct slave *slave)
 {
-       struct bonding *bond = slave->dev->master->priv;
+       struct bonding *bond = netdev_priv(slave->dev->master);
        if (bond->params.mode != BOND_MODE_TLB &&
            bond->params.mode != BOND_MODE_ALB)
                slave->state = BOND_STATE_BACKUP;
 
 
 static void veth_set_multicast_list(struct net_device *dev)
 {
-       struct veth_port *port = (struct veth_port *) dev->priv;
+       struct veth_port *port = netdev_priv(dev);
        unsigned long flags;
 
        write_lock_irqsave(&port->mcast_gate, flags);
                return NULL;
        }
 
-       port = (struct veth_port *) dev->priv;
+       port = netdev_priv(dev);
 
        spin_lock_init(&port->queue_lock);
        rwlock_init(&port->mcast_gate);
                                struct net_device *dev)
 {
        struct veth_lpar_connection *cnx = veth_cnx[rlp];
-       struct veth_port *port = (struct veth_port *) dev->priv;
+       struct veth_port *port = netdev_priv(dev);
        HvLpEvent_Rc rc;
        struct veth_msg *msg = NULL;
        unsigned long flags;
 static int veth_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
        unsigned char *frame = skb->data;
-       struct veth_port *port = (struct veth_port *) dev->priv;
+       struct veth_port *port = netdev_priv(dev);
        HvLpIndexMap lpmask;
 
        if (! (frame[0] & 0x01)) {
                if (! dev)
                        continue;
 
-               port = (struct veth_port *)dev->priv;
+               port = netdev_priv(dev);
 
                if (! (port->lpar_map & (1<<cnx->remote_lp)))
                        continue;
                if (! dev)
                        continue;
 
-               port = (struct veth_port *)dev->priv;
+               port = netdev_priv(dev);
 
                /* If this cnx is not on the vlan for this port, continue */
                if (! (port->lpar_map & (1 << cnx->remote_lp)))
                        continue;
                }
 
-               port = (struct veth_port *)dev->priv;
+               port = netdev_priv(dev);
                dest = *((u64 *) skb->data) & 0xFFFFFFFFFFFF0000;
 
                if ((vlan > HVMAXARCHITECTEDVIRTUALLANS) || !port) {
 
 };
 
 #define IXGBE_QUEUE_STATS_LEN \
-                ((((struct ixgbe_adapter *)netdev->priv)->num_tx_queues + \
-                 ((struct ixgbe_adapter *)netdev->priv)->num_rx_queues) * \
-                 (sizeof(struct ixgbe_queue_stats) / sizeof(u64)))
+       ((((struct ixgbe_adapter *)netdev_priv(netdev))->num_tx_queues + \
+       ((struct ixgbe_adapter *)netdev_priv(netdev))->num_rx_queues) * \
+       (sizeof(struct ixgbe_queue_stats) / sizeof(u64)))
 #define IXGBE_STATS_LEN (IXGBE_GLOBAL_STATS_LEN + IXGBE_QUEUE_STATS_LEN)
 #define IXGBE_GLOBAL_STATS_LEN ARRAY_SIZE(ixgbe_gstrings_stats)
 #define IXGBE_STATS_LEN (IXGBE_GLOBAL_STATS_LEN + IXGBE_QUEUE_STATS_LEN)
 
                                                 pci_channel_state_t state)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct ixgbe_adapter *adapter = netdev->priv;
+       struct ixgbe_adapter *adapter = netdev_priv(netdev);
 
        netif_device_detach(netdev);
 
 static pci_ers_result_t ixgbe_io_slot_reset(struct pci_dev *pdev)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct ixgbe_adapter *adapter = netdev->priv;
+       struct ixgbe_adapter *adapter = netdev_priv(netdev);
 
        if (pci_enable_device(pdev)) {
                DPRINTK(PROBE, ERR,
 static void ixgbe_io_resume(struct pci_dev *pdev)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct ixgbe_adapter *adapter = netdev->priv;
+       struct ixgbe_adapter *adapter = netdev_priv(netdev);
 
        if (netif_running(netdev)) {
                if (ixgbe_up(adapter)) {
 
        struct i596_private *lp;
        int boguscnt = ct;
 
-       lp = (struct i596_private *) dev->priv;
+       lp = netdev_priv(dev);
        while (lp->scb.command) {
                if (--boguscnt == 0) {
                        printk("%s: %s timed out - stat %4.4x, cmd %4.4x\n",
        int i;
        // struct i596_rbd *rbd;
 
-       lp = (struct i596_private *) dev->priv;
+       lp = netdev_priv(dev);
        lp->scb.pa_rfd = I596_NULL;
 
        for (i = 0; i < num; i++) {
        struct i596_private *lp;
        struct i596_rfd *rfd;
 
-       lp = (struct i596_private *) dev->priv;
+       lp = netdev_priv(dev);
        lp->rx_tail->pa_next = I596_NULL;
 
        do {
 /* selftest or dump */
 static void
 i596_port_do(struct net_device *dev, int portcmd, char *cmdname) {
-       struct i596_private *lp = dev->priv;
+       struct i596_private *lp = netdev_priv(dev);
        u16 *outp;
        int i, m;
 
 
 static int
 i596_scp_setup(struct net_device *dev) {
-       struct i596_private *lp = dev->priv;
+       struct i596_private *lp = netdev_priv(dev);
        int boguscnt;
 
        /* Setup SCP, ISCP, SCB */
        if (i596_scp_setup(dev))
                return 1;
 
-       lp = (struct i596_private *) dev->priv;
+       lp = netdev_priv(dev);
        lp->scb.command = 0;
 
        memcpy ((void *)lp->i596_config, init_setup, 14);
 
 static int
 i596_rx(struct net_device *dev) {
-       struct i596_private *lp = (struct i596_private *) dev->priv;
+       struct i596_private *lp = netdev_priv(dev);
        struct i596_rfd *rfd;
        int frames = 0;
 
        struct i596_private *lp;
        struct i596_cmd *cmd;
 
-       lp = (struct i596_private *) dev->priv;
+       lp = netdev_priv(dev);
        while (lp->cmd_head) {
                cmd = (struct i596_cmd *)lp->cmd_head;
 
 }
 
 static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd) {
-       struct i596_private *lp = dev->priv;
+       struct i596_private *lp = netdev_priv(dev);
        int ioaddr = dev->base_addr;
        unsigned long flags;
 
 
 static void
 i596_tx_timeout (struct net_device *dev) {
-       struct i596_private *lp = dev->priv;
+       struct i596_private *lp = netdev_priv(dev);
        int ioaddr = dev->base_addr;
 
        /* Transmitter timeout, serious problems. */
                return -EBUSY;
        }
 
-       lp = (struct i596_private *) dev->priv;
+       lp = netdev_priv(dev);
        spin_lock_init(&lp->cmd_lock);
 
        /*
 i596_interrupt(int irq, void *dev_instance)
 {
        struct net_device *dev = dev_instance;
-       struct i596_private *lp = dev->priv;
+       struct i596_private *lp = netdev_priv(dev);
        unsigned short status, ack_cmd = 0;
        int frames_in = 0;
 
 }
 
 static int i596_close(struct net_device *dev) {
-       struct i596_private *lp = dev->priv;
+       struct i596_private *lp = netdev_priv(dev);
 
        netif_stop_queue(dev);
 
 */
 
 static void set_multicast_list(struct net_device *dev) {
-       struct i596_private *lp = dev->priv;
+       struct i596_private *lp = netdev_priv(dev);
        struct i596_cmd *cmd;
 
        if (i596_debug > 1)
 
        }
        SET_NETDEV_DEV(dev, &mdev->ofdev.dev);
 
-       mp = dev->priv;
+       mp = netdev_priv(dev);
        mp->mdev = mdev;
        macio_set_drvdata(mdev, dev);
 
                        in_8(&mp->mace->chipid_lo);
 
 
-       mp = (struct mace_data *) dev->priv;
+       mp = netdev_priv(dev);
        mp->maccc = ENXMT | ENRCV;
 
        mp->tx_dma = ioremap(macio_resource_start(mdev, 1), 0x1000);
 
        macio_set_drvdata(mdev, NULL);
 
-       mp = dev->priv;
+       mp = netdev_priv(dev);
 
        unregister_netdev(dev);
 
 
 static void mace_reset(struct net_device *dev)
 {
-    struct mace_data *mp = (struct mace_data *) dev->priv;
+    struct mace_data *mp = netdev_priv(dev);
     volatile struct mace __iomem *mb = mp->mace;
     int i;
 
 
 static void __mace_set_address(struct net_device *dev, void *addr)
 {
-    struct mace_data *mp = (struct mace_data *) dev->priv;
+    struct mace_data *mp = netdev_priv(dev);
     volatile struct mace __iomem *mb = mp->mace;
     unsigned char *p = addr;
     int i;
 
 static int mace_set_address(struct net_device *dev, void *addr)
 {
-    struct mace_data *mp = (struct mace_data *) dev->priv;
+    struct mace_data *mp = netdev_priv(dev);
     volatile struct mace __iomem *mb = mp->mace;
     unsigned long flags;
 
 
 static int mace_open(struct net_device *dev)
 {
-    struct mace_data *mp = (struct mace_data *) dev->priv;
+    struct mace_data *mp = netdev_priv(dev);
     volatile struct mace __iomem *mb = mp->mace;
     volatile struct dbdma_regs __iomem *rd = mp->rx_dma;
     volatile struct dbdma_regs __iomem *td = mp->tx_dma;
 
 static int mace_close(struct net_device *dev)
 {
-    struct mace_data *mp = (struct mace_data *) dev->priv;
+    struct mace_data *mp = netdev_priv(dev);
     volatile struct mace __iomem *mb = mp->mace;
     volatile struct dbdma_regs __iomem *rd = mp->rx_dma;
     volatile struct dbdma_regs __iomem *td = mp->tx_dma;
 
 static inline void mace_set_timeout(struct net_device *dev)
 {
-    struct mace_data *mp = (struct mace_data *) dev->priv;
+    struct mace_data *mp = netdev_priv(dev);
 
     if (mp->timeout_active)
        del_timer(&mp->tx_timeout);
 
 static int mace_xmit_start(struct sk_buff *skb, struct net_device *dev)
 {
-    struct mace_data *mp = (struct mace_data *) dev->priv;
+    struct mace_data *mp = netdev_priv(dev);
     volatile struct dbdma_regs __iomem *td = mp->tx_dma;
     volatile struct dbdma_cmd *cp, *np;
     unsigned long flags;
 
 static void mace_set_multicast(struct net_device *dev)
 {
-    struct mace_data *mp = (struct mace_data *) dev->priv;
+    struct mace_data *mp = netdev_priv(dev);
     volatile struct mace __iomem *mb = mp->mace;
     int i, j;
     u32 crc;
 static irqreturn_t mace_interrupt(int irq, void *dev_id)
 {
     struct net_device *dev = (struct net_device *) dev_id;
-    struct mace_data *mp = (struct mace_data *) dev->priv;
+    struct mace_data *mp = netdev_priv(dev);
     volatile struct mace __iomem *mb = mp->mace;
     volatile struct dbdma_regs __iomem *td = mp->tx_dma;
     volatile struct dbdma_cmd *cp;
 static void mace_tx_timeout(unsigned long data)
 {
     struct net_device *dev = (struct net_device *) data;
-    struct mace_data *mp = (struct mace_data *) dev->priv;
+    struct mace_data *mp = netdev_priv(dev);
     volatile struct mace __iomem *mb = mp->mace;
     volatile struct dbdma_regs __iomem *td = mp->tx_dma;
     volatile struct dbdma_regs __iomem *rd = mp->rx_dma;
 static irqreturn_t mace_rxdma_intr(int irq, void *dev_id)
 {
     struct net_device *dev = (struct net_device *) dev_id;
-    struct mace_data *mp = (struct mace_data *) dev->priv;
+    struct mace_data *mp = netdev_priv(dev);
     volatile struct dbdma_regs __iomem *rd = mp->rx_dma;
     volatile struct dbdma_cmd *cp, *np;
     int i, nb, stat, next;