static int c2_pseudo_up(struct net_device *netdev)
 {
        struct in_device *ind;
-       struct c2_dev *c2dev = netdev->priv;
+       struct c2_dev *c2dev = netdev->ml_priv;
 
        ind = in_dev_get(netdev);
        if (!ind)
 static int c2_pseudo_down(struct net_device *netdev)
 {
        struct in_device *ind;
-       struct c2_dev *c2dev = netdev->priv;
+       struct c2_dev *c2dev = netdev->ml_priv;
 
        ind = in_dev_get(netdev);
        if (!ind)
        /* change ethxxx to iwxxx */
        strcpy(name, "iw");
        strcat(name, &c2dev->netdev->name[3]);
-       netdev = alloc_netdev(sizeof(*netdev), name, setup);
+       netdev = alloc_netdev(0, name, setup);
        if (!netdev) {
                printk(KERN_ERR PFX "%s -  etherdev alloc failed",
                        __func__);
                return NULL;
        }
 
-       netdev->priv = c2dev;
+       netdev->ml_priv = c2dev;
 
        SET_NETDEV_DEV(netdev, &c2dev->pcidev->dev);