Skip to content

Commit

Permalink
infiniband: Kill directly reference of netdev->priv
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Wang Chen authored and David S. Miller committed Nov 24, 2008
1 parent 486bf8d commit 4b40eed
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/infiniband/hw/amso1100/c2_provider.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down Expand Up @@ -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);

Expand Down

0 comments on commit 4b40eed

Please sign in to comment.