infiniband: Kill directly reference of netdev->priv
authorWang Chen <wangchen@cn.fujitsu.com>
Mon, 24 Nov 2008 23:34:00 +0000 (15:34 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 Nov 2008 23:34:00 +0000 (15:34 -0800)
This use of netdev->priv is wrong.
The right way is:
alloc_netdev() with no memory for private data.
make netdev->ml_priv to point to c2_dev.

Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
Acked-by: Roland Dreier <rolandd@cisco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/infiniband/hw/amso1100/c2_provider.c

index 69580e282af012a918fb6bf258333a34f258a584..5119d6508181633bf2ace7886bc0034afd74bcf8 100644 (file)
@@ -653,7 +653,7 @@ static int c2_service_destroy(struct iw_cm_id *cm_id)
 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)
@@ -678,7 +678,7 @@ static int c2_pseudo_up(struct net_device *netdev)
 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)
@@ -746,14 +746,14 @@ static struct net_device *c2_pseudo_netdev_init(struct c2_dev *c2dev)
        /* 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);