mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-10 07:10:27 +00:00
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: Ilya Yanok <yanok@emcraft.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
915239472a
commit
b093dd9684
@ -337,8 +337,6 @@ static int dnet_mii_init(struct dnet *bp)
|
||||
for (i = 0; i < PHY_MAX_ADDR; i++)
|
||||
bp->mii_bus->irq[i] = PHY_POLL;
|
||||
|
||||
platform_set_drvdata(bp->dev, bp->mii_bus);
|
||||
|
||||
if (mdiobus_register(bp->mii_bus)) {
|
||||
err = -ENXIO;
|
||||
goto err_out_free_mdio_irq;
|
||||
@ -863,6 +861,7 @@ static int __devinit dnet_probe(struct platform_device *pdev)
|
||||
bp = netdev_priv(dev);
|
||||
bp->dev = dev;
|
||||
|
||||
platform_set_drvdata(pdev, dev);
|
||||
SET_NETDEV_DEV(dev, &pdev->dev);
|
||||
|
||||
spin_lock_init(&bp->lock);
|
||||
|
Loading…
x
Reference in New Issue
Block a user