From 33f434d283a27116fb358ae5bc3b42967c12f85a Mon Sep 17 00:00:00 2001 From: Axel Lin Date: Tue, 7 Apr 2015 12:23:38 +0800 Subject: phy: core: Check requested PHY status in _of_phy_get() This is a common checking in various drivers, so move the checking to _of_phy_get(). Signed-off-by: Axel Lin Signed-off-by: Kishon Vijay Abraham I --- drivers/phy/phy-core.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'drivers/phy/phy-core.c') diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c index 5f729bb0788f..7d535dbb63ee 100644 --- a/drivers/phy/phy-core.c +++ b/drivers/phy/phy-core.c @@ -367,13 +367,21 @@ static struct phy *_of_phy_get(struct device_node *np, int index) phy_provider = of_phy_provider_lookup(args.np); if (IS_ERR(phy_provider) || !try_module_get(phy_provider->owner)) { phy = ERR_PTR(-EPROBE_DEFER); - goto err0; + goto out_unlock; + } + + if (!of_device_is_available(args.np)) { + dev_warn(phy_provider->dev, "Requested PHY is disabled\n"); + phy = ERR_PTR(-ENODEV); + goto out_put_module; } phy = phy_provider->of_xlate(phy_provider->dev, &args); + +out_put_module: module_put(phy_provider->owner); -err0: +out_unlock: mutex_unlock(&phy_provider_mutex); of_node_put(args.np); -- cgit v1.2.3-59-g8ed1b