dev = root_lance_dev;
                while (dev) {
                        i++;
-                       lp = (struct lance_private *)dev->priv;
+                       lp = netdev_priv(dev);
                        dev = lp->next;
                }
                snprintf(name, sizeof(name), fmt, i);
 
                return -ENXIO;
        }
 
-       lp = (struct depca_private *) dev->priv;
+       lp = netdev_priv(dev);
        mem_start = lp->mem_start;
 
        if (!mem_start || lp->adapter < DEPCA || lp->adapter >=unknown)
 
 static int depca_open(struct net_device *dev)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        u_long ioaddr = dev->base_addr;
        s16 nicsr;
        int status = 0;
 /* Initialize the lance Rx and Tx descriptor rings. */
 static void depca_init_ring(struct net_device *dev)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        u_int i;
        u_long offset;
 
 */
 static int depca_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        u_long ioaddr = dev->base_addr;
        int status = 0;
 
                return IRQ_NONE;
        }
 
-       lp = (struct depca_private *) dev->priv;
+       lp = netdev_priv(dev);
        ioaddr = dev->base_addr;
 
        spin_lock(&lp->lock);
 /* Called with lp->lock held */
 static int depca_rx(struct net_device *dev)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        int i, entry;
        s32 status;
 
 */
 static int depca_tx(struct net_device *dev)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        int entry;
        s32 status;
        u_long ioaddr = dev->base_addr;
 
 static int depca_close(struct net_device *dev)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        s16 nicsr;
        u_long ioaddr = dev->base_addr;
 
 
 static void LoadCSRs(struct net_device *dev)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        u_long ioaddr = dev->base_addr;
 
        outw(CSR1, DEPCA_ADDR); /* initialisation block address LSW */
 
 static int InitRestartDepca(struct net_device *dev)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        u_long ioaddr = dev->base_addr;
        int i, status = 0;
 
 */
 static void set_multicast_list(struct net_device *dev)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        u_long ioaddr = dev->base_addr;
 
        netif_stop_queue(dev);
 */
 static void SetMulticastFilter(struct net_device *dev)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        struct dev_mc_list *dmi = dev->mc_list;
        char *addrs;
        int i, j, bit, byte;
 
        dev->irq = irq;
        dev->base_addr = iobase;
-       lp = dev->priv;
+       lp = netdev_priv(dev);
        lp->depca_bus = DEPCA_BUS_MCA;
        lp->adapter = depca_mca_adapter_type[mdev->index];
        lp->mem_start = mem_start;
        dev->base_addr = ioaddr;
        dev->irq = irq;         /* Use whatever value the user gave
                                 * us, and 0 if he didn't. */
-       lp = dev->priv;
+       lp = netdev_priv(dev);
        lp->depca_bus = DEPCA_BUS_ISA;
        lp->adapter = adapter;
        lp->mem_start = mem_start;
 
        dev->base_addr = ioaddr;
        dev->irq = irq;
-       lp = dev->priv;
+       lp = netdev_priv(dev);
        lp->depca_bus = DEPCA_BUS_EISA;
        lp->adapter = edev->id.driver_data;
        lp->mem_start = mem_start;
        int bus;
 
        dev  = device->driver_data;
-       lp   = dev->priv;
+       lp   = netdev_priv(dev);
 
        unregister_netdev (dev);
        iounmap (lp->sh_mem);
 static int __init get_hw_addr(struct net_device *dev)
 {
        u_long ioaddr = dev->base_addr;
-       struct depca_private *lp = dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        int i, k, tmp, status = 0;
        u_short j, x, chksum;
 
 */
 static int load_packet(struct net_device *dev, struct sk_buff *skb)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        int i, entry, end, len, status = 0;
 
        entry = lp->tx_new;     /* Ring around buffer number. */
 
 static void depca_dbg_open(struct net_device *dev)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        u_long ioaddr = dev->base_addr;
        struct depca_init *p = &lp->init_block;
        int i;
 */
 static int depca_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
 {
-       struct depca_private *lp = (struct depca_private *) dev->priv;
+       struct depca_private *lp = netdev_priv(dev);
        struct depca_ioctl *ioc = (struct depca_ioctl *) &rq->ifr_ifru;
        int i, status = 0;
        u_long ioaddr = dev->base_addr;
 
 
 static inline board_info_t *to_dm9000_board(struct net_device *dev)
 {
-       return dev->priv;
+       return netdev_priv(dev);
 }
 
 /* DM9000 network board routine ---------------------------- */
 static void
 dm9000_hash_table(struct net_device *dev)
 {
-       board_info_t *db = (board_info_t *) dev->priv;
+       board_info_t *db = netdev_priv(dev);
        struct dev_mc_list *mcptr = dev->mc_list;
        int mc_cnt = dev->mc_count;
        int i, oft;
 static void
 dm9000_init_dm9000(struct net_device *dev)
 {
-       board_info_t *db = dev->priv;
+       board_info_t *db = netdev_priv(dev);
        unsigned int imr;
 
        dm9000_dbg(db, 1, "entering %s\n", __func__);
 /* Our watchdog timed out. Called by the networking layer */
 static void dm9000_timeout(struct net_device *dev)
 {
-       board_info_t *db = (board_info_t *) dev->priv;
+       board_info_t *db = netdev_priv(dev);
        u8 reg_save;
        unsigned long flags;
 
 dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
        unsigned long flags;
-       board_info_t *db = dev->priv;
+       board_info_t *db = netdev_priv(dev);
 
        dm9000_dbg(db, 3, "%s:\n", __func__);
 
 static void
 dm9000_rx(struct net_device *dev)
 {
-       board_info_t *db = (board_info_t *) dev->priv;
+       board_info_t *db = netdev_priv(dev);
        struct dm9000_rxhdr rxhdr;
        struct sk_buff *skb;
        u8 rxbyte, *rdptr;
 static irqreturn_t dm9000_interrupt(int irq, void *dev_id)
 {
        struct net_device *dev = dev_id;
-       board_info_t *db = dev->priv;
+       board_info_t *db = netdev_priv(dev);
        int int_status;
        u8 reg_save;
 
 static int
 dm9000_open(struct net_device *dev)
 {
-       board_info_t *db = dev->priv;
+       board_info_t *db = netdev_priv(dev);
        unsigned long irqflags = db->irq_res->flags & IRQF_TRIGGER_MASK;
 
        if (netif_msg_ifup(db))
 static int
 dm9000_phy_read(struct net_device *dev, int phy_reg_unused, int reg)
 {
-       board_info_t *db = (board_info_t *) dev->priv;
+       board_info_t *db = netdev_priv(dev);
        unsigned long flags;
        unsigned int reg_save;
        int ret;
 dm9000_phy_write(struct net_device *dev,
                 int phyaddr_unused, int reg, int value)
 {
-       board_info_t *db = (board_info_t *) dev->priv;
+       board_info_t *db = netdev_priv(dev);
        unsigned long flags;
        unsigned long reg_save;
 
 static void
 dm9000_shutdown(struct net_device *dev)
 {
-       board_info_t *db = dev->priv;
+       board_info_t *db = netdev_priv(dev);
 
        /* RESET device */
        dm9000_phy_write(dev, 0, MII_BMCR, BMCR_RESET); /* PHY RESET */
 static int
 dm9000_stop(struct net_device *ndev)
 {
-       board_info_t *db = ndev->priv;
+       board_info_t *db = netdev_priv(ndev);
 
        if (netif_msg_ifdown(db))
                dev_dbg(db->dev, "shutting down %s\n", ndev->name);
        dev_dbg(&pdev->dev, "dm9000_probe()\n");
 
        /* setup board info structure */
-       db = ndev->priv;
+       db = netdev_priv(ndev);
        memset(db, 0, sizeof(*db));
 
        db->dev = &pdev->dev;
        board_info_t *db;
 
        if (ndev) {
-               db = (board_info_t *) ndev->priv;
+               db = netdev_priv(ndev);
                db->in_suspend = 1;
 
                if (netif_running(ndev)) {
 dm9000_drv_resume(struct platform_device *dev)
 {
        struct net_device *ndev = platform_get_drvdata(dev);
-       board_info_t *db = (board_info_t *) ndev->priv;
+       board_info_t *db = netdev_priv(ndev);
 
        if (ndev) {
 
        platform_set_drvdata(pdev, NULL);
 
        unregister_netdev(ndev);
-       dm9000_release_board(pdev, (board_info_t *) ndev->priv);
+       dm9000_release_board(pdev, (board_info_t *) netdev_priv(ndev);
        free_netdev(ndev);              /* free device structure */
 
        dev_dbg(&pdev->dev, "released and freed device\n");
 
        struct net_device *poll_dev = adapter->netdev;
        int tx_cleaned = 0, work_done = 0;
 
-       /* Must NOT use netdev_priv macro here. */
-       adapter = poll_dev->priv;
+       adapter = netdev_priv(poll_dev);
 
        /* e1000_clean is called per-cpu.  This lock protects
         * tx_ring[0] from being cleaned by multiple cpus
                                                pci_channel_state_t state)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct e1000_adapter *adapter = netdev->priv;
+       struct e1000_adapter *adapter = netdev_priv(netdev);
 
        netif_device_detach(netdev);
 
 static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct e1000_adapter *adapter = netdev->priv;
+       struct e1000_adapter *adapter = netdev_priv(netdev);
        struct e1000_hw *hw = &adapter->hw;
        int err;
 
 static void e1000_io_resume(struct pci_dev *pdev)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct e1000_adapter *adapter = netdev->priv;
+       struct e1000_adapter *adapter = netdev_priv(netdev);
        struct e1000_hw *hw = &adapter->hw;
 
        e1000_init_manageability(adapter);
 
        struct net_device *poll_dev = adapter->netdev;
        int tx_cleaned = 0, work_done = 0;
 
-       /* Must NOT use netdev_priv macro here. */
-       adapter = poll_dev->priv;
+       adapter = netdev_priv(poll_dev);
 
        if (adapter->msix_entries &&
            !(adapter->rx_ring->ims_val & adapter->tx_ring->ims_val))
 
 
 static void __init printEEPROMInfo(struct net_device *dev)
 {
-       struct eepro_local *lp = (struct eepro_local *)dev->priv;
+       struct eepro_local *lp = netdev_priv(dev);
        int ioaddr = dev->base_addr;
        unsigned short Word;
        int i,j;
 static int eepro_ethtool_get_settings(struct net_device *dev,
                                        struct ethtool_cmd *cmd)
 {
-       struct eepro_local      *lp = (struct eepro_local *)dev->priv;
+       struct eepro_local      *lp = netdev_priv(dev);
 
        cmd->supported =        SUPPORTED_10baseT_Half |
                                SUPPORTED_10baseT_Full |
 
 #endif
 
        pci_set_drvdata(pdev, dev);
-       ep = dev->priv;
+       ep = netdev_priv(dev);
        ep->mii.dev = dev;
        ep->mii.mdio_read = mdio_read;
        ep->mii.mdio_write = mdio_write;
 
 static int epic_open(struct net_device *dev)
 {
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
        long ioaddr = dev->base_addr;
        int i;
        int retval;
 static void epic_pause(struct net_device *dev)
 {
        long ioaddr = dev->base_addr;
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
 
        netif_stop_queue (dev);
 
 static void epic_restart(struct net_device *dev)
 {
        long ioaddr = dev->base_addr;
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
        int i;
 
        /* Soft reset the chip. */
 
 static void check_media(struct net_device *dev)
 {
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
        long ioaddr = dev->base_addr;
        int mii_lpa = ep->mii_phy_cnt ? mdio_read(dev, ep->phys[0], MII_LPA) : 0;
        int negotiated = mii_lpa & ep->mii.advertising;
 static void epic_timer(unsigned long data)
 {
        struct net_device *dev = (struct net_device *)data;
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
        long ioaddr = dev->base_addr;
        int next_tick = 5*HZ;
 
 
 static void epic_tx_timeout(struct net_device *dev)
 {
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
        long ioaddr = dev->base_addr;
 
        if (debug > 0) {
 /* Initialize the Rx and Tx rings, along with various 'dev' bits. */
 static void epic_init_ring(struct net_device *dev)
 {
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
        int i;
 
        ep->tx_full = 0;
 
 static int epic_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
        int entry, free_count;
        u32 ctrl_word;
        unsigned long flags;
 static irqreturn_t epic_interrupt(int irq, void *dev_instance)
 {
        struct net_device *dev = dev_instance;
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
        long ioaddr = dev->base_addr;
        unsigned int handled = 0;
        int status;
 
 static int epic_rx(struct net_device *dev, int budget)
 {
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
        int entry = ep->cur_rx % RX_RING_SIZE;
        int rx_work_limit = ep->dirty_rx + RX_RING_SIZE - ep->cur_rx;
        int work_done = 0;
 static int epic_close(struct net_device *dev)
 {
        long ioaddr = dev->base_addr;
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
        struct sk_buff *skb;
        int i;
 
 
 static struct net_device_stats *epic_get_stats(struct net_device *dev)
 {
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
        long ioaddr = dev->base_addr;
 
        if (netif_running(dev)) {
 static void set_rx_mode(struct net_device *dev)
 {
        long ioaddr = dev->base_addr;
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
        unsigned char mc_filter[8];              /* Multicast hash filter */
        int i;
 
 
 static void netdev_get_drvinfo (struct net_device *dev, struct ethtool_drvinfo *info)
 {
-       struct epic_private *np = dev->priv;
+       struct epic_private *np = netdev_priv(dev);
 
        strcpy (info->driver, DRV_NAME);
        strcpy (info->version, DRV_VERSION);
 
 static int netdev_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 {
-       struct epic_private *np = dev->priv;
+       struct epic_private *np = netdev_priv(dev);
        int rc;
 
        spin_lock_irq(&np->lock);
 
 static int netdev_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
 {
-       struct epic_private *np = dev->priv;
+       struct epic_private *np = netdev_priv(dev);
        int rc;
 
        spin_lock_irq(&np->lock);
 
 static int netdev_nway_reset(struct net_device *dev)
 {
-       struct epic_private *np = dev->priv;
+       struct epic_private *np = netdev_priv(dev);
        return mii_nway_restart(&np->mii);
 }
 
 static u32 netdev_get_link(struct net_device *dev)
 {
-       struct epic_private *np = dev->priv;
+       struct epic_private *np = netdev_priv(dev);
        return mii_link_ok(&np->mii);
 }
 
 
 static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
 {
-       struct epic_private *np = dev->priv;
+       struct epic_private *np = netdev_priv(dev);
        long ioaddr = dev->base_addr;
        struct mii_ioctl_data *data = if_mii(rq);
        int rc;
 static void __devexit epic_remove_one (struct pci_dev *pdev)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
-       struct epic_private *ep = dev->priv;
+       struct epic_private *ep = netdev_priv(dev);
 
        pci_free_consistent(pdev, TX_TOTAL_SIZE, ep->tx_ring, ep->tx_ring_dma);
        pci_free_consistent(pdev, RX_TOTAL_SIZE, ep->rx_ring, ep->rx_ring_dma);
 
        for(this_dev = 0; this_dev < MAX_ETH16I_CARDS; this_dev++) {
                struct net_device *dev = dev_eth16i[this_dev];
 
-               if(dev->priv) {
+               if (netdev_priv(dev)) {
                        unregister_netdev(dev);
                        free_irq(dev->irq, dev);
                        release_region(dev->base_addr, ETH16I_IO_EXTENT);
 
 
 static void mii_parse_dp8384x_sr2(uint mii_reg, struct net_device *dev)
 {
-       struct fec_enet_private *fep = dev->priv;
+       struct fec_enet_private *fep = netdev_priv(dev);
        volatile uint *s = &(fep->phy_status);
 
        *s &= ~(PHY_STAT_SPMASK | PHY_STAT_LINK | PHY_STAT_ANC);
 
 
 static int ibmveth_open(struct net_device *netdev)
 {
-       struct ibmveth_adapter *adapter = netdev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(netdev);
        u64 mac_address = 0;
        int rxq_entries = 1;
        unsigned long lpar_rc;
 
 static int ibmveth_close(struct net_device *netdev)
 {
-       struct ibmveth_adapter *adapter = netdev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(netdev);
        long lpar_rc;
 
        ibmveth_debug_printk("close starting\n");
 
 static void ibmveth_set_rx_csum_flags(struct net_device *dev, u32 data)
 {
-       struct ibmveth_adapter *adapter = dev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(dev);
 
        if (data)
                adapter->rx_csum = 1;
 
 static void ibmveth_set_tx_csum_flags(struct net_device *dev, u32 data)
 {
-       struct ibmveth_adapter *adapter = dev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(dev);
 
        if (data) {
                dev->features |= NETIF_F_IP_CSUM;
 static int ibmveth_set_csum_offload(struct net_device *dev, u32 data,
                                    void (*done) (struct net_device *, u32))
 {
-       struct ibmveth_adapter *adapter = dev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(dev);
        u64 set_attr, clr_attr, ret_attr;
        long ret;
        int rc1 = 0, rc2 = 0;
 
 static int ibmveth_set_rx_csum(struct net_device *dev, u32 data)
 {
-       struct ibmveth_adapter *adapter = dev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(dev);
 
        if ((data && adapter->rx_csum) || (!data && !adapter->rx_csum))
                return 0;
 
 static int ibmveth_set_tx_csum(struct net_device *dev, u32 data)
 {
-       struct ibmveth_adapter *adapter = dev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(dev);
        int rc = 0;
 
        if (data && (dev->features & NETIF_F_IP_CSUM))
 
 static u32 ibmveth_get_rx_csum(struct net_device *dev)
 {
-       struct ibmveth_adapter *adapter = dev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(dev);
        return adapter->rx_csum;
 }
 
                                      struct ethtool_stats *stats, u64 *data)
 {
        int i;
-       struct ibmveth_adapter *adapter = dev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(dev);
 
        for (i = 0; i < ARRAY_SIZE(ibmveth_stats); i++)
                data[i] = IBMVETH_GET_STAT(adapter, ibmveth_stats[i].offset);
 
 static int ibmveth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
 {
-       struct ibmveth_adapter *adapter = netdev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(netdev);
        union ibmveth_buf_desc desc;
        unsigned long lpar_rc;
        unsigned long correlator;
 static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance)
 {
        struct net_device *netdev = dev_instance;
-       struct ibmveth_adapter *adapter = netdev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(netdev);
        unsigned long lpar_rc;
 
        if (netif_rx_schedule_prep(netdev, &adapter->napi)) {
 
 static void ibmveth_set_multicast_list(struct net_device *netdev)
 {
-       struct ibmveth_adapter *adapter = netdev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(netdev);
        unsigned long lpar_rc;
 
        if((netdev->flags & IFF_PROMISC) || (netdev->mc_count > adapter->mcastFilterSize)) {
 
 static int ibmveth_change_mtu(struct net_device *dev, int new_mtu)
 {
-       struct ibmveth_adapter *adapter = dev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(dev);
        struct vio_dev *viodev = adapter->vdev;
        int new_mtu_oh = new_mtu + IBMVETH_BUFF_OH;
        int i;
 #ifdef CONFIG_NET_POLL_CONTROLLER
 static void ibmveth_poll_controller(struct net_device *dev)
 {
-       ibmveth_replenish_task(dev->priv);
+       ibmveth_replenish_task(netdev_priv(dev));
        ibmveth_interrupt(dev->irq, dev);
 }
 #endif
        if(!netdev)
                return -ENOMEM;
 
-       adapter = netdev->priv;
+       adapter = netdev_priv(netdev);
        dev->dev.driver_data = netdev;
 
        adapter->vdev = dev;
 static int __devexit ibmveth_remove(struct vio_dev *dev)
 {
        struct net_device *netdev = dev->dev.driver_data;
-       struct ibmveth_adapter *adapter = netdev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(netdev);
        int i;
 
        for(i = 0; i<IbmVethNumBufferPools; i++)
                                                      kobj);
        struct net_device *netdev =
            container_of(kobj->parent, struct device, kobj)->driver_data;
-       struct ibmveth_adapter *adapter = netdev->priv;
+       struct ibmveth_adapter *adapter = netdev_priv(netdev);
        long value = simple_strtol(buf, NULL, 10);
        long rc;
 
 
 };
 
 #define IGB_QUEUE_STATS_LEN \
-       ((((struct igb_adapter *)netdev->priv)->num_rx_queues + \
-        ((struct igb_adapter *)netdev->priv)->num_tx_queues) * \
+       ((((struct igb_adapter *)netdev_priv(netdev))->num_rx_queues + \
+        ((struct igb_adapter *)netdev_priv(netdev))->num_tx_queues) * \
        (sizeof(struct igb_queue_stats) / sizeof(u64)))
 #define IGB_GLOBAL_STATS_LEN   \
        sizeof(igb_gstrings_stats) / sizeof(struct igb_stats)
 
                return -ENOMEM;
        }
 
-       self = dev->priv;
+       self = netdev_priv(dev);
        self->netdev = dev;
        spin_lock_init(&self->lock);
    
                
        IRDA_DEBUG(2, "%s(), ---------------- Start ----------------\n", __func__);
                
-       self = dev->priv;
+       self = netdev_priv(dev);
        
        spin_lock(&self->lock);
        
        
        IRDA_ASSERT(dev != NULL, return -1;);
        
-       self = (struct ali_ircc_cb *) dev->priv;
+       self = netdev_priv(dev);
        
        IRDA_ASSERT(self != NULL, return 0;);
        
                
        IRDA_ASSERT(dev != NULL, return -1;);
 
-       self = (struct ali_ircc_cb *) dev->priv;
+       self = netdev_priv(dev);
        IRDA_ASSERT(self != NULL, return 0;);
 
        /* Stop device */
        
        IRDA_DEBUG(1, "%s(), ---------------- Start -----------------\n", __func__ );
        
-       self = (struct ali_ircc_cb *) dev->priv;
+       self = netdev_priv(dev);
        iobase = self->io.fir_base;
 
        netif_stop_queue(dev);
        
        IRDA_ASSERT(dev != NULL, return 0;);
        
-       self = (struct ali_ircc_cb *) dev->priv;
+       self = netdev_priv(dev);
        IRDA_ASSERT(self != NULL, return 0;);
 
        iobase = self->io.sir_base;
        
        IRDA_ASSERT(dev != NULL, return -1;);
 
-       self = dev->priv;
+       self = netdev_priv(dev);
 
        IRDA_ASSERT(self != NULL, return -1;);
 
 
 static struct net_device_stats *ali_ircc_net_get_stats(struct net_device *dev)
 {
-       struct ali_ircc_cb *self = (struct ali_ircc_cb *) dev->priv;
+       struct ali_ircc_cb *self = netdev_priv(dev);
        
        IRDA_DEBUG(2, "%s(), ---------------- Start ----------------\n", __func__ );
                
 
   unsigned long flags;
   struct irda_skb_cb *cb = (struct irda_skb_cb *) skb->cb;
 
-  self = (struct toshoboe_cb *) dev->priv;
+  self = netdev_priv(dev);
 
   IRDA_ASSERT (self != NULL, return 0; );
 
   IRDA_DEBUG (4, "%s()\n", __func__);
 
   IRDA_ASSERT (dev != NULL, return -1; );
-  self = (struct toshoboe_cb *) dev->priv;
+  self = netdev_priv(dev);
 
   /* Stop device */
   netif_stop_queue(dev);
 
   IRDA_ASSERT (dev != NULL, return -1; );
 
-  self = dev->priv;
+  self = netdev_priv(dev);
 
   IRDA_ASSERT (self != NULL, return -1; );
 
       return -ENOMEM;
     }
 
-  self = dev->priv;
+  self = netdev_priv(dev);
   self->netdev = dev;
   self->pdev = pci_dev;
   self->base = pci_resource_start(pci_dev,0);
 
  */
 static int irda_usb_hard_xmit(struct sk_buff *skb, struct net_device *netdev)
 {
-       struct irda_usb_cb *self = netdev->priv;
+       struct irda_usb_cb *self = netdev_priv(netdev);
        struct urb *urb = self->tx_urb;
        unsigned long flags;
        s32 speed;
 static void irda_usb_net_timeout(struct net_device *netdev)
 {
        unsigned long flags;
-       struct irda_usb_cb *self = netdev->priv;
+       struct irda_usb_cb *self = netdev_priv(netdev);
        struct urb *urb;
        int     done = 0;       /* If we have made any progress */
 
        IRDA_DEBUG(1, "%s()\n", __func__);
 
        IRDA_ASSERT(netdev != NULL, return -1;);
-       self = (struct irda_usb_cb *) netdev->priv;
+       self = netdev_priv(netdev);
        IRDA_ASSERT(self != NULL, return -1;);
 
        spin_lock_irqsave(&self->lock, flags);
        IRDA_DEBUG(1, "%s()\n", __func__);
 
        IRDA_ASSERT(netdev != NULL, return -1;);
-       self = (struct irda_usb_cb *) netdev->priv;
+       self = netdev_priv(netdev);
        IRDA_ASSERT(self != NULL, return -1;);
 
        /* Clear this flag *before* unlinking the urbs and *before*
        int ret = 0;
 
        IRDA_ASSERT(dev != NULL, return -1;);
-       self = dev->priv;
+       self = netdev_priv(dev);
        IRDA_ASSERT(self != NULL, return -1;);
 
        IRDA_DEBUG(2, "%s(), %s, (cmd=0x%X)\n", __func__, dev->name, cmd);
  */
 static struct net_device_stats *irda_usb_net_get_stats(struct net_device *dev)
 {
-       struct irda_usb_cb *self = dev->priv;
+       struct irda_usb_cb *self = netdev_priv(dev);
        return &self->stats;
 }
 
                goto err_out;
 
        SET_NETDEV_DEV(net, &intf->dev);
-       self = net->priv;
+       self = netdev_priv(net);
        self->netdev = net;
        spin_lock_init(&self->lock);
        init_timer(&self->rx_defer_timer);
 
                return -ENOMEM;
        }
 
-       self = dev->priv;
+       self = netdev_priv(dev);
        self->netdev = dev;
        spin_lock_init(&self->lock);
    
        __s32 speed;
        __u8 bank;
        
-       self = (struct nsc_ircc_cb *) dev->priv;
+       self = netdev_priv(dev);
 
        IRDA_ASSERT(self != NULL, return 0;);
 
        __u8 bank;
        int mtt, diff;
        
-       self = (struct nsc_ircc_cb *) dev->priv;
+       self = netdev_priv(dev);
        iobase = self->io.fir_base;
 
        netif_stop_queue(dev);
        __u8 bsr, eir;
        int iobase;
 
-       self = dev->priv;
+       self = netdev_priv(dev);
 
        spin_lock(&self->lock); 
 
        IRDA_DEBUG(4, "%s()\n", __func__);
        
        IRDA_ASSERT(dev != NULL, return -1;);
-       self = (struct nsc_ircc_cb *) dev->priv;
+       self = netdev_priv(dev);
        
        IRDA_ASSERT(self != NULL, return 0;);
        
        
        IRDA_ASSERT(dev != NULL, return -1;);
 
-       self = (struct nsc_ircc_cb *) dev->priv;
+       self = netdev_priv(dev);
        IRDA_ASSERT(self != NULL, return 0;);
 
        /* Stop device */
 
        IRDA_ASSERT(dev != NULL, return -1;);
 
-       self = dev->priv;
+       self = netdev_priv(dev);
 
        IRDA_ASSERT(self != NULL, return -1;);
 
 
 static struct net_device_stats *nsc_ircc_net_get_stats(struct net_device *dev)
 {
-       struct nsc_ircc_cb *self = (struct nsc_ircc_cb *) dev->priv;
+       struct nsc_ircc_cb *self = netdev_priv(dev);
        
        return &self->stats;
 }
 
        if (!dev)
                return 0;
 
-       si = dev->priv;
+       si = netdev_priv(dev);
        if (si->open) {
                /*
                 * Stop the transmit queue
        if (!dev)
                return 0;
 
-       si = dev->priv;
+       si = netdev_priv(dev);
        if (si->open) {
                /*
                 * If we missed a speed change, initialise at the new speed
  */
 static void sa1100_irda_hpsir_irq(struct net_device *dev)
 {
-       struct sa1100_irda *si = dev->priv;
+       struct sa1100_irda *si = netdev_priv(dev);
        int status;
 
        status = Ser2UTSR0;
  */
 static void sa1100_irda_fir_irq(struct net_device *dev)
 {
-       struct sa1100_irda *si = dev->priv;
+       struct sa1100_irda *si = netdev_priv(dev);
 
        /*
         * Stop RX DMA
 static irqreturn_t sa1100_irda_irq(int irq, void *dev_id)
 {
        struct net_device *dev = dev_id;
-       if (IS_FIR(((struct sa1100_irda *)dev->priv)))
+       if (IS_FIR(((struct sa1100_irda *)netdev_priv(dev))))
                sa1100_irda_fir_irq(dev);
        else
                sa1100_irda_hpsir_irq(dev);
 static void sa1100_irda_txdma_irq(void *id)
 {
        struct net_device *dev = id;
-       struct sa1100_irda *si = dev->priv;
+       struct sa1100_irda *si = netdev_priv(dev);
        struct sk_buff *skb = si->txskb;
 
        si->txskb = NULL;
 
 static int sa1100_irda_hard_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       struct sa1100_irda *si = dev->priv;
+       struct sa1100_irda *si = netdev_priv(dev);
        int speed = irda_get_next_speed(skb);
 
        /*
 sa1100_irda_ioctl(struct net_device *dev, struct ifreq *ifreq, int cmd)
 {
        struct if_irda_req *rq = (struct if_irda_req *)ifreq;
-       struct sa1100_irda *si = dev->priv;
+       struct sa1100_irda *si = netdev_priv(dev);
        int ret = -EOPNOTSUPP;
 
        switch (cmd) {
 
 static struct net_device_stats *sa1100_irda_stats(struct net_device *dev)
 {
-       struct sa1100_irda *si = dev->priv;
+       struct sa1100_irda *si = netdev_priv(dev);
        return &si->stats;
 }
 
 static int sa1100_irda_start(struct net_device *dev)
 {
-       struct sa1100_irda *si = dev->priv;
+       struct sa1100_irda *si = netdev_priv(dev);
        int err;
 
        si->speed = 9600;
 
 static int sa1100_irda_stop(struct net_device *dev)
 {
-       struct sa1100_irda *si = dev->priv;
+       struct sa1100_irda *si = netdev_priv(dev);
 
        disable_irq(dev->irq);
        sa1100_irda_shutdown(si);
        if (!dev)
                goto err_mem_4;
 
-       si = dev->priv;
+       si = netdev_priv(dev);
        si->dev = &pdev->dev;
        si->pdata = pdev->dev.platform_data;
 
        struct net_device *dev = platform_get_drvdata(pdev);
 
        if (dev) {
-               struct sa1100_irda *si = dev->priv;
+               struct sa1100_irda *si = netdev_priv(dev);
                unregister_netdev(dev);
                kfree(si->tx_buff.head);
                kfree(si->rx_buff.head);
 
 
 static struct net_device_stats *sirdev_get_stats(struct net_device *ndev)
 {
-       struct sir_dev *dev = ndev->priv;
+       struct sir_dev *dev = netdev_priv(ndev);
 
        return (dev) ? &dev->stats : NULL;
 }
 
 static int sirdev_hard_xmit(struct sk_buff *skb, struct net_device *ndev)
 {
-       struct sir_dev *dev = ndev->priv;
+       struct sir_dev *dev = netdev_priv(ndev);
        unsigned long flags;
        int actual = 0;
        int err;
 static int sirdev_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
 {
        struct if_irda_req *irq = (struct if_irda_req *) rq;
-       struct sir_dev *dev = ndev->priv;
+       struct sir_dev *dev = netdev_priv(ndev);
        int ret = 0;
 
        IRDA_ASSERT(dev != NULL, return -1;);
 
 static int sirdev_open(struct net_device *ndev)
 {
-       struct sir_dev *dev = ndev->priv;
+       struct sir_dev *dev = netdev_priv(ndev);
        const struct sir_driver *drv = dev->drv;
 
        if (!drv)
 
 static int sirdev_close(struct net_device *ndev)
 {
-       struct sir_dev *dev = ndev->priv;
+       struct sir_dev *dev = netdev_priv(ndev);
        const struct sir_driver *drv;
 
 //     IRDA_DEBUG(0, "%s\n", __func__);
                IRDA_ERROR("%s - Can't allocate memory for IrDA control block!\n", __func__);
                goto out;
        }
-       dev = ndev->priv;
+       dev = netdev_priv(ndev);
 
        irda_init_max_qos_capabilies(&dev->qos);
        dev->qos.baud_rate.bits = IR_9600|IR_19200|IR_38400|IR_57600|IR_115200;
 
        if (dev == NULL) 
                return -ENOMEM;
 
-       self = dev->priv;
+       self = netdev_priv(dev);
        self->netdev = dev;
        spin_lock_init(&self->lock);
 
        u16 iobase;
        __u32 speed;
 
-       self = (struct via_ircc_cb *) dev->priv;
+       self = netdev_priv(dev);
        IRDA_ASSERT(self != NULL, return 0;);
        iobase = self->io.fir_base;
 
        __u32 speed;
        unsigned long flags;
 
-       self = (struct via_ircc_cb *) dev->priv;
+       self = netdev_priv(dev);
        iobase = self->io.fir_base;
 
        if (self->st_fifo.len)
 static irqreturn_t via_ircc_interrupt(int dummy, void *dev_id)
 {
        struct net_device *dev = dev_id;
-       struct via_ircc_cb *self = dev->priv;
+       struct via_ircc_cb *self = netdev_priv(dev);
        int iobase;
        u8 iHostIntType, iRxIntType, iTxIntType;
 
        IRDA_DEBUG(3, "%s()\n", __func__);
 
        IRDA_ASSERT(dev != NULL, return -1;);
-       self = (struct via_ircc_cb *) dev->priv;
+       self = netdev_priv(dev);
        self->stats.rx_packets = 0;
        IRDA_ASSERT(self != NULL, return 0;);
        iobase = self->io.fir_base;
        IRDA_DEBUG(3, "%s()\n", __func__);
 
        IRDA_ASSERT(dev != NULL, return -1;);
-       self = (struct via_ircc_cb *) dev->priv;
+       self = netdev_priv(dev);
        IRDA_ASSERT(self != NULL, return 0;);
 
        /* Stop device */
        int ret = 0;
 
        IRDA_ASSERT(dev != NULL, return -1;);
-       self = dev->priv;
+       self = netdev_priv(dev);
        IRDA_ASSERT(self != NULL, return -1;);
        IRDA_DEBUG(1, "%s(), %s, (cmd=0x%X)\n", __func__, dev->name,
                   cmd);
 static struct net_device_stats *via_ircc_net_get_stats(struct net_device
                                                       *dev)
 {
-       struct via_ircc_cb *self = (struct via_ircc_cb *) dev->priv;
+       struct via_ircc_cb *self = netdev_priv(dev);
 
        return &self->stats;
 }
 
                
 static void vlsi_proc_ndev(struct seq_file *seq, struct net_device *ndev)
 {
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
        u8 byte;
        u16 word;
        unsigned delta1, delta2;
 static int vlsi_seq_show(struct seq_file *seq, void *v)
 {
        struct net_device *ndev = seq->private;
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
        unsigned long flags;
 
        seq_printf(seq, "\n%s %s\n\n", DRIVER_NAME, DRIVER_VERSION);
        struct sk_buff  *skb;
        int             ret = 0;
        struct net_device *ndev = (struct net_device *)pci_get_drvdata(r->pdev);
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
 
        pci_dma_sync_single_for_cpu(r->pdev, rd_get_addr(rd), r->len, r->dir);
        /* dma buffer now owned by the CPU */
 
 static void vlsi_rx_interrupt(struct net_device *ndev)
 {
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
        struct vlsi_ring *r = idev->rx_ring;
        struct ring_descr *rd;
        int ret;
 
 static int vlsi_hard_start_xmit(struct sk_buff *skb, struct net_device *ndev)
 {
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
        struct vlsi_ring        *r = idev->tx_ring;
        struct ring_descr *rd;
        unsigned long flags;
 
 static void vlsi_tx_interrupt(struct net_device *ndev)
 {
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
        struct vlsi_ring        *r = idev->tx_ring;
        struct ring_descr       *rd;
        unsigned        iobase;
 static int vlsi_init_chip(struct pci_dev *pdev)
 {
        struct net_device *ndev = pci_get_drvdata(pdev);
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
        unsigned        iobase;
        u16 ptr;
 
 
 static struct net_device_stats * vlsi_get_stats(struct net_device *ndev)
 {
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
 
        return &idev->stats;
 }
 
 static void vlsi_tx_timeout(struct net_device *ndev)
 {
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
 
 
        vlsi_reg_debug(ndev->base_addr, __func__);
 
 static int vlsi_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
 {
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
        struct if_irda_req *irq = (struct if_irda_req *) rq;
        unsigned long flags;
        u16 fifocnt;
 static irqreturn_t vlsi_interrupt(int irq, void *dev_instance)
 {
        struct net_device *ndev = dev_instance;
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
        unsigned        iobase;
        u8              irintr;
        int             boguscount = 5;
 
 static int vlsi_open(struct net_device *ndev)
 {
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
        int     err = -EAGAIN;
        char    hwname[32];
 
 
 static int vlsi_close(struct net_device *ndev)
 {
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
 
        netif_stop_queue(ndev);
 
 
 static int vlsi_irda_init(struct net_device *ndev)
 {
-       vlsi_irda_dev_t *idev = ndev->priv;
+       vlsi_irda_dev_t *idev = netdev_priv(ndev);
        struct pci_dev *pdev = idev->pdev;
 
        ndev->irq = pdev->irq;
                goto out_disable;
        }
 
-       idev = ndev->priv;
+       idev = netdev_priv(ndev);
 
        spin_lock_init(&idev->lock);
        mutex_init(&idev->mtx);
 
        unregister_netdev(ndev);
 
-       idev = ndev->priv;
+       idev = netdev_priv(ndev);
        mutex_lock(&idev->mtx);
        if (idev->proc_entry) {
                remove_proc_entry(ndev->name, vlsi_proc_root);
                           __func__, pci_name(pdev));
                return 0;
        }
-       idev = ndev->priv;      
+       idev = netdev_priv(ndev);
        mutex_lock(&idev->mtx);
        if (pdev->current_state != 0) {                 /* already suspended */
                if (state.event > pdev->current_state) {        /* simply go deeper */
                           __func__, pci_name(pdev));
                return 0;
        }
-       idev = ndev->priv;      
+       idev = netdev_priv(ndev);
        mutex_lock(&idev->mtx);
        if (pdev->current_state == 0) {
                mutex_unlock(&idev->mtx);
 
                goto err_out;
        }
 
-       self = dev->priv;
+       self = netdev_priv(dev);
        spin_lock_init(&self->lock);
    
 
        __u8 set;
        int mtt;
        
-       self = (struct w83977af_ir *) dev->priv;
+       self = netdev_priv(dev);
 
        iobase = self->io.fir_base;
 
        __u8 set, icr, isr;
        int iobase;
 
-       self = dev->priv;
+       self = netdev_priv(dev);
 
        iobase = self->io.fir_base;
 
        IRDA_DEBUG(0, "%s()\n", __func__ );
        
        IRDA_ASSERT(dev != NULL, return -1;);
-       self = (struct w83977af_ir *) dev->priv;
+       self = netdev_priv(dev);
        
        IRDA_ASSERT(self != NULL, return 0;);
        
 
        IRDA_ASSERT(dev != NULL, return -1;);
        
-       self = (struct w83977af_ir *) dev->priv;
+       self = netdev_priv(dev);
        
        IRDA_ASSERT(self != NULL, return 0;);
        
 
        IRDA_ASSERT(dev != NULL, return -1;);
 
-       self = dev->priv;
+       self = netdev_priv(dev);
 
        IRDA_ASSERT(self != NULL, return -1;);
 
 
 static struct net_device_stats *w83977af_net_get_stats(struct net_device *dev)
 {
-       struct w83977af_ir *self = (struct w83977af_ir *) dev->priv;
+       struct w83977af_ir *self = netdev_priv(dev);
        
        return &self->stats;
 }
 
               dev->name, dev->base_addr, MVME147_LANCE_IRQ,
               dev->dev_addr);
 
-       lp = (struct m147lance_private *)dev->priv;
+       lp = netdev_priv(dev);
        lp->ram = __get_dma_pages(GFP_ATOMIC, 3);       /* 16K */
        if (!lp->ram)
        {
 
 void __exit cleanup_module(void)
 {
-       struct m147lance_private *lp = dev_mvme147_lance->priv;
+       struct m147lance_private *lp = netdev_priv(dev_mvme147_lance);
        unregister_netdev(dev_mvme147_lance);
        free_pages(lp->ram, 3);
        free_netdev(dev_mvme147_lance);
 
 static irqreturn_t myri_interrupt(int irq, void *dev_id)
 {
        struct net_device *dev          = (struct net_device *) dev_id;
-       struct myri_eth *mp             = (struct myri_eth *) dev->priv;
+       struct myri_eth *mp             = netdev_priv(dev);
        void __iomem *lregs             = mp->lregs;
        struct myri_channel __iomem *chan = &mp->shmem->channel;
        unsigned long flags;
 
 static int myri_open(struct net_device *dev)
 {
-       struct myri_eth *mp = (struct myri_eth *) dev->priv;
+       struct myri_eth *mp = netdev_priv(dev);
 
        return myri_init(mp, in_interrupt());
 }
 
 static int myri_close(struct net_device *dev)
 {
-       struct myri_eth *mp = (struct myri_eth *) dev->priv;
+       struct myri_eth *mp = netdev_priv(dev);
 
        myri_clean_rings(mp);
        return 0;
 
 static void myri_tx_timeout(struct net_device *dev)
 {
-       struct myri_eth *mp = (struct myri_eth *) dev->priv;
+       struct myri_eth *mp = netdev_priv(dev);
 
        printk(KERN_ERR "%s: transmit timed out, resetting\n", dev->name);
 
 
 static int myri_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       struct myri_eth *mp = (struct myri_eth *) dev->priv;
+       struct myri_eth *mp = netdev_priv(dev);
        struct sendq __iomem *sq = mp->sq;
        struct myri_txd __iomem *txd;
        unsigned long flags;
 
 static void ne2k_pci_get_drvinfo(struct net_device *dev,
                                 struct ethtool_drvinfo *info)
 {
-       struct ei_device *ei = dev->priv;
+       struct ei_device *ei = netdev_priv(dev);
        struct pci_dev *pci_dev = (struct pci_dev *) ei->priv;
 
        strcpy(info->driver, DRV_NAME);
 
 static int nx_p3_sre_macaddr_change(struct net_device *dev,
                u8 *addr, unsigned op)
 {
-       struct netxen_adapter *adapter = (struct netxen_adapter *)dev->priv;
+       struct netxen_adapter *adapter = netdev_priv(dev);
        nx_nic_req_t req;
        nx_mac_req_t mac_req;
        int rv;
 
 
        SET_NETDEV_DEV(netdev, &pdev->dev);
 
-       adapter = netdev->priv;
+       adapter = netdev_priv(netdev);
        adapter->netdev  = netdev;
        adapter->pdev    = pdev;
        adapter->ahw.pci_func  = pci_func_id;
  */
 static int netxen_nic_open(struct net_device *netdev)
 {
-       struct netxen_adapter *adapter = (struct netxen_adapter *)netdev->priv;
+       struct netxen_adapter *adapter = netdev_priv(netdev);
        int err = 0;
        int ctx, ring;
        irq_handler_t handler;
 
                outb(0, IE_RBUF);       /* set buffer byte 0 to 0 again */
        }
         printk("-> bufsize rcv/xmt=%d/%d\n", bufsize_rcv, NI5010_BUFSIZE);
-       memset(dev->priv, 0, sizeof(struct ni5010_local));
+       memset(netdev_priv(dev), 0, sizeof(struct ni5010_local));
 
        dev->open               = ni5010_open;
        dev->stop               = ni5010_close;
 
 /* wait for command with timeout: */
 static void wait_for_scb_cmd(struct net_device *dev)
 {
-       struct priv *p = dev->priv;
+       struct priv *p = netdev_priv(dev);
        int i;
        for (i = 0; i < 16384; i++) {
                if (readb(&p->scb->cmd_cuc) == 0)
 
 static void wait_for_scb_cmd_ruc(struct net_device *dev)
 {
-       struct priv *p = dev->priv;
+       struct priv *p = netdev_priv(dev);
        int i;
        for (i = 0; i < 16384; i++) {
                if (readb(&p->scb->cmd_ruc) == 0)
 static int check_iscp(struct net_device *dev, void __iomem *addr)
 {
        struct iscp_struct __iomem *iscp = addr;
-       struct priv *p = dev->priv;
+       struct priv *p = netdev_priv(dev);
        memset_io(iscp, 0, sizeof(struct iscp_struct));
 
        writel(make24(iscp), &p->scp->iscp);
  */
 static int check586(struct net_device *dev, unsigned size)
 {
-       struct priv *p = dev->priv;
+       struct priv *p = netdev_priv(dev);
        int i;
 
        p->mapped = ioremap(dev->mem_start, size);
  */
 static void alloc586(struct net_device *dev)
 {
-       struct priv *p =        (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        ni_reset586();
        mdelay(32);
        if (!dev)
                return ERR_PTR(-ENOMEM);
 
-       p = dev->priv;
+       p = netdev_priv(dev);
 
        if (unit >= 0) {
                sprintf(dev->name, "eth%d", unit);
 static int __init ni52_probe1(struct net_device *dev, int ioaddr)
 {
        int i, size, retval;
-       struct priv *priv = dev->priv;
+       struct priv *priv = netdev_priv(dev);
 
        dev->base_addr = ioaddr;
        dev->irq = irq;
 {
        void __iomem *ptr;
        int i, result = 0;
-       struct priv *p = (struct priv *)dev->priv;
+       struct priv *p = netdev_priv(dev);
        struct configure_cmd_struct __iomem *cfg_cmd;
        struct iasetup_cmd_struct __iomem *ias_cmd;
        struct tdr_cmd_struct __iomem *tdr_cmd;
        struct rfd_struct __iomem *rfd = ptr;
        struct rbd_struct __iomem *rbd;
        int i;
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        memset_io(rfd, 0,
                sizeof(struct rfd_struct) * (p->num_recv_buffs + rfdadd));
        int cnt = 0;
        struct priv *p;
 
-       p = (struct priv *) dev->priv;
+       p = netdev_priv(dev);
 
        if (debuglevel > 1)
                printk("I");
        unsigned short totlen;
        struct sk_buff *skb;
        struct rbd_struct __iomem *rbd;
-       struct priv *p = (struct priv *)dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        if (debuglevel > 0)
                printk("R");
 
 static void ni52_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 ni52_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_for_scb_cmd(dev);
        wait_for_scb_cmd_ruc(dev);
 
 static void ni52_timeout(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 #ifndef NO_NOPCOMMANDS
        if (readb(&p->scb->cus) & CU_ACTIVE) { /* COMMAND-UNIT active? */
                netif_wake_queue(dev);
 #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) {
                printk(KERN_ERR "%s: Sorry, max. framelength is %d bytes. The length of your frame is %d bytes.\n", dev->name, XMIT_BUFF_SIZE, skb->len);
 
 static struct net_device_stats *ni52_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;
 
        /* Get error-statistics from the ni82586 */
 
 void __exit cleanup_module(void)
 {
-       struct priv *p = dev_ni52->priv;
+       struct priv *p = netdev_priv(dev_ni52);
        unregister_netdev(dev_ni52);
        iounmap(p->mapped);
        release_region(dev_ni52->base_addr, NI52_TOTAL_SIZE);
 
 pasemi_mac_ethtool_get_ringparam(struct net_device *netdev,
                                 struct ethtool_ringparam *ering)
 {
-       struct pasemi_mac *mac = netdev->priv;
+       struct pasemi_mac *mac = netdev_priv(netdev);
 
        ering->tx_max_pending = TX_RING_SIZE/2;
        ering->tx_pending = RING_USED(mac->tx)/2;
 static void pasemi_mac_get_ethtool_stats(struct net_device *netdev,
                struct ethtool_stats *stats, u64 *data)
 {
-       struct pasemi_mac *mac = netdev->priv;
+       struct pasemi_mac *mac = netdev_priv(netdev);
        int i;
 
        data[0] = pasemi_read_dma_reg(PAS_DMA_RXINT_RCMDSTA(mac->dma_if))
 
     if (!dev)
        goto fail_alloc_dev;
 
-    lp = dev->priv;
+    lp = netdev_priv(dev);
     lp->timeout = timeout;
     lp->backplane = backplane;
     lp->clockp = clockp;
        goto failed;
     }
     
-    lp = dev->priv;
+    lp = netdev_priv(dev);
     lp->card_name = "PCMCIA COM20020";
     lp->card_flags = ARC_CAN_10MBIT; /* pretend all of them can 10Mbit */
 
 
        if (link->open) {
                int ioaddr = dev->base_addr;
-               struct arcnet_local *lp = dev->priv;
+               struct arcnet_local *lp = netdev_priv(dev);
                ARCRESET;
        }
 
 
        if (dev->irq != -1)
        {
                struct parport *port =
-                  ((struct net_local *)dev->priv)->pardev->port;
+                  ((struct net_local *)netdev_priv(dev))->pardev->port;
                port->ops->enable_irq (port);
        }
 }
        if (dev->irq != -1)
        {
                struct parport *port =
-                  ((struct net_local *)dev->priv)->pardev->port;
+                  ((struct net_local *)netdev_priv(dev))->pardev->port;
                port->ops->disable_irq (port);
        }
 }
 static inline void write_data (struct net_device *dev, unsigned char data)
 {
        struct parport *port =
-          ((struct net_local *)dev->priv)->pardev->port;
+          ((struct net_local *)netdev_priv(dev))->pardev->port;
 
        port->ops->write_data (port, data);
 }
 static inline unsigned char read_status (struct net_device *dev)
 {
        struct parport *port =
-          ((struct net_local *)dev->priv)->pardev->port;
+          ((struct net_local *)netdev_priv(dev))->pardev->port;
 
        return port->ops->read_status (port);
 }
 
 {
        int i;
        int error = 0;
-       struct rionet_private *rnet = ndev->priv;
+       struct rionet_private *rnet = netdev_priv(ndev);
        void *data;
 
        i = rnet->rx_slot;
 static void rionet_rx_fill(struct net_device *ndev, int end)
 {
        int i;
-       struct rionet_private *rnet = ndev->priv;
+       struct rionet_private *rnet = netdev_priv(ndev);
 
        i = rnet->rx_slot;
        do {
 static int rionet_queue_tx_msg(struct sk_buff *skb, struct net_device *ndev,
                               struct rio_dev *rdev)
 {
-       struct rionet_private *rnet = ndev->priv;
+       struct rionet_private *rnet = netdev_priv(ndev);
 
        rio_add_outb_message(rnet->mport, rdev, 0, skb->data, skb->len);
        rnet->tx_skb[rnet->tx_slot] = skb;
 static int rionet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
 {
        int i;
-       struct rionet_private *rnet = ndev->priv;
+       struct rionet_private *rnet = netdev_priv(ndev);
        struct ethhdr *eth = (struct ethhdr *)skb->data;
        u16 destid;
        unsigned long flags;
                               u16 info)
 {
        struct net_device *ndev = dev_id;
-       struct rionet_private *rnet = ndev->priv;
+       struct rionet_private *rnet = netdev_priv(ndev);
        struct rionet_peer *peer;
 
        if (netif_msg_intr(rnet))
 {
        int n;
        struct net_device *ndev = dev_id;
-       struct rionet_private *rnet = (struct rionet_private *)ndev->priv;
+       struct rionet_private *rnet = netdev_priv(ndev);
 
        if (netif_msg_intr(rnet))
                printk(KERN_INFO "%s: inbound message event, mbox %d slot %d\n",
 static void rionet_outb_msg_event(struct rio_mport *mport, void *dev_id, int mbox, int slot)
 {
        struct net_device *ndev = dev_id;
-       struct rionet_private *rnet = ndev->priv;
+       struct rionet_private *rnet = netdev_priv(ndev);
 
        spin_lock(&rnet->lock);
 
        int i, rc = 0;
        struct rionet_peer *peer, *tmp;
        u32 pwdcsr;
-       struct rionet_private *rnet = ndev->priv;
+       struct rionet_private *rnet = netdev_priv(ndev);
 
        if (netif_msg_ifup(rnet))
                printk(KERN_INFO "%s: open\n", DRV_NAME);
 
 static int rionet_close(struct net_device *ndev)
 {
-       struct rionet_private *rnet = (struct rionet_private *)ndev->priv;
+       struct rionet_private *rnet = netdev_priv(ndev);
        struct rionet_peer *peer, *tmp;
        int i;
 
 static void rionet_get_drvinfo(struct net_device *ndev,
                               struct ethtool_drvinfo *info)
 {
-       struct rionet_private *rnet = ndev->priv;
+       struct rionet_private *rnet = netdev_priv(ndev);
 
        strcpy(info->driver, DRV_NAME);
        strcpy(info->version, DRV_VERSION);
 
 static u32 rionet_get_msglevel(struct net_device *ndev)
 {
-       struct rionet_private *rnet = ndev->priv;
+       struct rionet_private *rnet = netdev_priv(ndev);
 
        return rnet->msg_enable;
 }
 
 static void rionet_set_msglevel(struct net_device *ndev, u32 value)
 {
-       struct rionet_private *rnet = ndev->priv;
+       struct rionet_private *rnet = netdev_priv(ndev);
 
        rnet->msg_enable = value;
 }
                                RIO_MAX_ROUTE_ENTRIES(mport->sys_size));
 
        /* Set up private area */
-       rnet = (struct rionet_private *)ndev->priv;
+       rnet = netdev_priv(ndev);
        rnet->mport = mport;
 
        /* Set the default MAC address */
 
                                        struct vlan_group *grp)
 {
        int i;
-       struct s2io_nic *nic = dev->priv;
+       struct s2io_nic *nic = netdev_priv(dev);
        unsigned long flags[MAX_TX_FIFOS];
        struct mac_info *mac_control = &nic->mac_control;
        struct config_param *config = &nic->config;
 static void s2io_vlan_rx_kill_vid(struct net_device *dev, unsigned long vid)
 {
        int i;
-       struct s2io_nic *nic = dev->priv;
+       struct s2io_nic *nic = netdev_priv(dev);
        unsigned long flags[MAX_TX_FIFOS];
        struct mac_info *mac_control = &nic->mac_control;
        struct config_param *config = &nic->config;
        int pkts_processed = 0;
        u8 __iomem *addr = NULL;
        u8 val8 = 0;
-       struct s2io_nic *nic = dev->priv;
+       struct s2io_nic *nic = netdev_priv(dev);
        struct XENA_dev_config __iomem *bar0 = nic->bar0;
        int budget_org = budget;
 
  */
 static void s2io_netpoll(struct net_device *dev)
 {
-       struct s2io_nic *nic = dev->priv;
+       struct s2io_nic *nic = netdev_priv(dev);
        struct mac_info *mac_control;
        struct config_param *config;
        struct XENA_dev_config __iomem *bar0 = nic->bar0;
 static void s2io_mdio_write(u32 mmd_type, u64 addr, u16 value, struct net_device *dev)
 {
        u64 val64 = 0x0;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        struct XENA_dev_config __iomem *bar0 = sp->bar0;
 
        //address transaction
 {
        u64 val64 = 0x0;
        u64 rval64 = 0x0;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        struct XENA_dev_config __iomem *bar0 = sp->bar0;
 
        /* address transaction */
        u64 val64 = 0x0;
        u64 addr  = 0x0;
 
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        struct stat_block *stat_info = sp->mac_control.stats_info;
 
        /* Check the communication with the MDIO slave */
 
 static int s2io_open(struct net_device *dev)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        int err = 0;
 
        /*
 
 static int s2io_close(struct net_device *dev)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        struct config_param *config = &sp->config;
        u64 tmp64;
        int offset;
 
 static int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        u16 frg_cnt, frg_len, i, queue, queue_len, put_off, get_off;
        register u64 val64;
        struct TxD *txdp;
 static void s2io_handle_errors(void * dev_id)
 {
        struct net_device *dev = (struct net_device *) dev_id;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        struct XENA_dev_config __iomem *bar0 = sp->bar0;
        u64 temp64 = 0,val64=0;
        int i = 0;
 static irqreturn_t s2io_isr(int irq, void *dev_id)
 {
        struct net_device *dev = (struct net_device *) dev_id;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        struct XENA_dev_config __iomem *bar0 = sp->bar0;
        int i;
        u64 reason = 0;
 
 static struct net_device_stats *s2io_get_stats(struct net_device *dev)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        struct mac_info *mac_control;
        struct config_param *config;
        int i;
 {
        int i, j, prev_cnt;
        struct dev_mc_list *mclist;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        struct XENA_dev_config __iomem *bar0 = sp->bar0;
        u64 val64 = 0, multi_mac = 0x010203040506ULL, mask =
            0xfeffffffffffULL;
 
 static int do_s2io_prog_unicast(struct net_device *dev, u8 *addr)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        register u64 mac_addr = 0, perm_addr = 0;
        int i;
        u64 tmp64;
 static int s2io_ethtool_sset(struct net_device *dev,
                             struct ethtool_cmd *info)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        if ((info->autoneg == AUTONEG_ENABLE) ||
            (info->speed != SPEED_10000) || (info->duplex != DUPLEX_FULL))
                return -EINVAL;
 
 static int s2io_ethtool_gset(struct net_device *dev, struct ethtool_cmd *info)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        info->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE);
        info->advertising = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE);
        info->port = PORT_FIBRE;
 static void s2io_ethtool_gdrvinfo(struct net_device *dev,
                                  struct ethtool_drvinfo *info)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
 
        strncpy(info->driver, s2io_driver_name, sizeof(info->driver));
        strncpy(info->version, s2io_driver_version, sizeof(info->version));
        int i;
        u64 reg;
        u8 *reg_space = (u8 *) space;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
 
        regs->len = XENA_REG_SPACE;
        regs->version = sp->pdev->subsystem_device;
 static int s2io_ethtool_idnic(struct net_device *dev, u32 data)
 {
        u64 val64 = 0, last_gpio_ctrl_val;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        struct XENA_dev_config __iomem *bar0 = sp->bar0;
        u16 subid;
 
 static void s2io_ethtool_gringparam(struct net_device *dev,
                                     struct ethtool_ringparam *ering)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        int i,tx_desc_count=0,rx_desc_count=0;
 
        if (sp->rxd_mode == RXD_MODE_1)
                                       struct ethtool_pauseparam *ep)
 {
        u64 val64;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        struct XENA_dev_config __iomem *bar0 = sp->bar0;
 
        val64 = readq(&bar0->rmac_pause_cfg);
                               struct ethtool_pauseparam *ep)
 {
        u64 val64;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        struct XENA_dev_config __iomem *bar0 = sp->bar0;
 
        val64 = readq(&bar0->rmac_pause_cfg);
 {
        u32 i, valid;
        u64 data;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
 
        eeprom->magic = sp->pdev->vendor | (sp->pdev->device << 16);
 
 {
        int len = eeprom->len, cnt = 0;
        u64 valid = 0, data;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
 
        if (eeprom->magic != (sp->pdev->vendor | (sp->pdev->device << 16))) {
                DBG_PRINT(ERR_DBG,
                              struct ethtool_test *ethtest,
                              uint64_t * data)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        int orig_state = netif_running(sp->dev);
 
        if (ethtest->flags == ETH_TEST_FL_OFFLINE) {
                                   u64 * tmp_stats)
 {
        int i = 0, k;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        struct stat_block *stat_info = sp->mac_control.stats_info;
 
        s2io_updt_stats(sp);
 
 static u32 s2io_ethtool_get_rx_csum(struct net_device * dev)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
 
        return (sp->rx_csum);
 }
 
 static int s2io_ethtool_set_rx_csum(struct net_device *dev, u32 data)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
 
        if (data)
                sp->rx_csum = 1;
 
 static int s2io_get_sset_count(struct net_device *dev, int sset)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
 
        switch (sset) {
        case ETH_SS_TEST:
                                     u32 stringset, u8 * data)
 {
        int stat_size = 0;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
 
        switch (stringset) {
        case ETH_SS_TEST:
 
 static int s2io_change_mtu(struct net_device *dev, int new_mtu)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
        int ret = 0;
 
        if ((new_mtu < MIN_MTU) || (new_mtu > S2IO_JUMBO_SIZE)) {
 
 static void s2io_tx_watchdog(struct net_device *dev)
 {
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
 
        if (netif_carrier_ok(dev)) {
                sp->mac_control.stats_info->sw_stat.watchdog_timer_cnt++;
        SET_NETDEV_DEV(dev, &pdev->dev);
 
        /*  Private member variable initialized to s2io NIC structure */
-       sp = dev->priv;
+       sp = netdev_priv(dev);
        memset(sp, 0, sizeof(struct s2io_nic));
        sp->dev = dev;
        sp->pdev = pdev;
 
        flush_scheduled_work();
 
-       sp = dev->priv;
+       sp = netdev_priv(dev);
        unregister_netdev(dev);
 
        free_shared_mem(sp);
 static void queue_rx_frame(struct sk_buff *skb, u16 vlan_tag)
 {
        struct net_device *dev = skb->dev;
-       struct s2io_nic *sp = dev->priv;
+       struct s2io_nic *sp = netdev_priv(dev);
 
        skb->protocol = eth_type_trans(skb, dev);
        if (sp->vlgrp && vlan_tag
                                                pci_channel_state_t state)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct s2io_nic *sp = netdev->priv;
+       struct s2io_nic *sp = netdev_priv(netdev);
 
        netif_device_detach(netdev);
 
 static pci_ers_result_t s2io_io_slot_reset(struct pci_dev *pdev)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct s2io_nic *sp = netdev->priv;
+       struct s2io_nic *sp = netdev_priv(netdev);
 
        if (pci_enable_device(pdev)) {
                printk(KERN_ERR "s2io: "
 static void s2io_io_resume(struct pci_dev *pdev)
 {
        struct net_device *netdev = pci_get_drvdata(pdev);
-       struct s2io_nic *sp = netdev->priv;
+       struct s2io_nic *sp = netdev_priv(netdev);
 
        if (netif_running(netdev)) {
                if (s2io_card_up(sp)) {