Commit b093dd96 authored by Ilya Yanok's avatar Ilya Yanok Committed by David S. Miller

dnet: fix wrong use of platform_set_drvdata()

platform_set_drvdata() was used with argument of incorrect type and
could cause memory corruption. Moreover, because of not setting drvdata
in the correct place not all resources were freed upon module unload.
Signed-off-by: default avatarIlya Yanok <yanok@emcraft.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 91523947
...@@ -337,8 +337,6 @@ static int dnet_mii_init(struct dnet *bp) ...@@ -337,8 +337,6 @@ static int dnet_mii_init(struct dnet *bp)
for (i = 0; i < PHY_MAX_ADDR; i++) for (i = 0; i < PHY_MAX_ADDR; i++)
bp->mii_bus->irq[i] = PHY_POLL; bp->mii_bus->irq[i] = PHY_POLL;
platform_set_drvdata(bp->dev, bp->mii_bus);
if (mdiobus_register(bp->mii_bus)) { if (mdiobus_register(bp->mii_bus)) {
err = -ENXIO; err = -ENXIO;
goto err_out_free_mdio_irq; goto err_out_free_mdio_irq;
...@@ -863,6 +861,7 @@ static int __devinit dnet_probe(struct platform_device *pdev) ...@@ -863,6 +861,7 @@ static int __devinit dnet_probe(struct platform_device *pdev)
bp = netdev_priv(dev); bp = netdev_priv(dev);
bp->dev = dev; bp->dev = dev;
platform_set_drvdata(pdev, dev);
SET_NETDEV_DEV(dev, &pdev->dev); SET_NETDEV_DEV(dev, &pdev->dev);
spin_lock_init(&bp->lock); spin_lock_init(&bp->lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment