| From d251430c1ff02123bb7e6a0f9640e0b984a6049a Mon Sep 17 00:00:00 2001 |
| From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Date: Thu, 20 Mar 2014 15:00:31 +0100 |
| Subject: sh_eth: Use the platform device for memory allocation |
| |
| Memory allocated for the MDIO bus with the devm_kzalloc() API is |
| associated with the network device. While this will cause memory to be |
| freed at the right time, it doesn't allow allocating memory before the |
| network device is initialized. |
| |
| Replace the network device with the parent platform device for memory |
| allocation to remove that dependency. This also improves consistency |
| with the other devm_* calls in the driver that all use the platform |
| device. |
| |
| Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| (cherry picked from commit aa8d422510969b705656e49fc0166d862aca9246) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/net/ethernet/renesas/sh_eth.c | 7 +++---- |
| 1 file changed, 3 insertions(+), 4 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c |
| index 062a70f85068..361ac103297b 100644 |
| --- a/drivers/net/ethernet/renesas/sh_eth.c |
| +++ b/drivers/net/ethernet/renesas/sh_eth.c |
| @@ -2620,10 +2620,10 @@ static int sh_mdio_init(struct net_device *ndev, int id, |
| int ret, i; |
| struct bb_info *bitbang; |
| struct sh_eth_private *mdp = netdev_priv(ndev); |
| + struct device *dev = &mdp->pdev->dev; |
| |
| /* create bit control struct for PHY */ |
| - bitbang = devm_kzalloc(&ndev->dev, sizeof(struct bb_info), |
| - GFP_KERNEL); |
| + bitbang = devm_kzalloc(dev, sizeof(struct bb_info), GFP_KERNEL); |
| if (!bitbang) { |
| ret = -ENOMEM; |
| goto out; |
| @@ -2652,8 +2652,7 @@ static int sh_mdio_init(struct net_device *ndev, int id, |
| mdp->pdev->name, id); |
| |
| /* PHY IRQ */ |
| - mdp->mii_bus->irq = devm_kzalloc(&ndev->dev, |
| - sizeof(int) * PHY_MAX_ADDR, |
| + mdp->mii_bus->irq = devm_kzalloc(dev, sizeof(int) * PHY_MAX_ADDR, |
| GFP_KERNEL); |
| if (!mdp->mii_bus->irq) { |
| ret = -ENOMEM; |
| -- |
| 2.1.2 |
| |