diff mbox

[net,v2,4/5] net: fsl/fman: fix fixed-link-phydev reference leak

Message ID 1480011691-13278-5-git-send-email-johan@kernel.org
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Johan Hovold Nov. 24, 2016, 6:21 p.m. UTC
Make sure to drop the reference taken by of_phy_find_device() when
looking up a fixed-link phydev during probe.

Fixes: 57ba4c9b56d8 ("fsl/fman: Add FMan MAC support")
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/net/ethernet/freescale/fman/mac.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Madalin Bucur Nov. 25, 2016, 10:54 a.m. UTC | #1
> -----Original Message-----
> From: Johan Hovold [mailto:jhovold@gmail.com] On Behalf Of Johan Hovold
> Sent: Thursday, November 24, 2016 8:22 PM
> 
> Make sure to drop the reference taken by of_phy_find_device() when
> looking up a fixed-link phydev during probe.
> 
> Fixes: 57ba4c9b56d8 ("fsl/fman: Add FMan MAC support")
> Signed-off-by: Johan Hovold <johan@kernel.org>
> ---
>  drivers/net/ethernet/freescale/fman/mac.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/ethernet/freescale/fman/mac.c
> b/drivers/net/ethernet/freescale/fman/mac.c
> index 8fe6b3e253fa..736db9d9b0ad 100644
> --- a/drivers/net/ethernet/freescale/fman/mac.c
> +++ b/drivers/net/ethernet/freescale/fman/mac.c
> @@ -892,6 +892,8 @@ static int mac_probe(struct platform_device *_of_dev)
>  		priv->fixed_link->duplex = phy->duplex;
>  		priv->fixed_link->pause = phy->pause;
>  		priv->fixed_link->asym_pause = phy->asym_pause;
> +
> +		put_device(&phy->mdio.dev);
>  	}
> 
>  	err = mac_dev->init(mac_dev);
> --
> 2.7.3

Thank you,
Madalin
diff mbox

Patch

diff --git a/drivers/net/ethernet/freescale/fman/mac.c b/drivers/net/ethernet/freescale/fman/mac.c
index 8fe6b3e253fa..736db9d9b0ad 100644
--- a/drivers/net/ethernet/freescale/fman/mac.c
+++ b/drivers/net/ethernet/freescale/fman/mac.c
@@ -892,6 +892,8 @@  static int mac_probe(struct platform_device *_of_dev)
 		priv->fixed_link->duplex = phy->duplex;
 		priv->fixed_link->pause = phy->pause;
 		priv->fixed_link->asym_pause = phy->asym_pause;
+
+		put_device(&phy->mdio.dev);
 	}
 
 	err = mac_dev->init(mac_dev);